Помогите пожалуйста с PHP

  • Автор темы Artexoid
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Artexoid

#1
Пожалуйста помогите мне!!!! ;)
Например есть форма, в ней поле для ввода и кнопка submit.

Для наглядности:
Введите имя: |____________|
|Submit|

Значит мне с помощью PHP обработчика нужно сделать так чтобы при нажатии на кнопку Submit имя введенное в поле отправлялось по e-mail на мой ящик и письмо имело вид:

Имя пользователя: <Имя которое пользователь ввел на форме>

Пожалуйста объесните мне поподробнее как это все сделать?
 
A

Artexoid

#3
;) На этом сайте http://ru.php.net/function.mail все по английски (((
Нифига не понял, есть что-нибудь другое ?????
Спасибо.
 
?

????

#4
Artexoid
Пожалуйста объесните мне поподробнее как это все сделать?
для начала тебе нужен PHP + Apache (IIS) + текстовый редактор + броузер
с этим всё понятно?
 
?

????

#6
Artexoid
Например есть форма, в ней поле для ввода и кнопка submit.

Для наглядности:
Введите имя: |____________|
|Submit|
В редакторе создаём такой файл (test.html):
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Тест</title>
</head>
<body>
<form method="post" action="test.php">
<P>Введите имя: <INPUT id="Text1" type="text" name="Text1"></P>
<P><INPUT id="Submit1" type="submit" value="Submit" name="Submit1"></P>
</form>
</body>
</html>
Получаем HTML страницу след. содержания.

С этим всё понятно?
 

Вложения

  • 12.1 КБ Просмотры: 83
?

????

#9
и письмо имело вид:

Имя пользователя: <Имя которое пользователь ввел на форме>
В редакторе создаём такой файл (test.php):
Код:
<?php

if (isset($_POST["Text1"]) && $_POST["Text1"] != "")
{
echo "Имя пользователя: " . $_POST["Text1"];
}
else
{
echo "Вы не ввели имя пользователя!";
}

?>
И помещаем файлы test.php и test.html в одну папку на сервере. Запускаем Test.html, жмём Submit и смотрим результат - если пользователя ввёл имя - Имя пользователя: имя, иначе сообщение Вы не ввели имя пользователя!

С этим всё понятно?
 
A

Artexoid

#11
????
С этим тоже теперь понятно вот только одна загвоздка !!!((( Я разместил index.htm и sender.php на сервак, а после нажатия на submit открывается страничка и там такая надпись

________________________________________________________________________
Method Not Allowed
The requested method POST is not allowed for the URL /webhome/muitem/hhh/sender.php.

Что это значит, как это исправить и что дальше нужно делать???
Спасибо!
 
?
#12
Artexoid
Возможные варианты:
  • Плохо настроен Apache на сервере
  • Используется прокси сервер не поддерживающий метод POST
  • Настройки php (*)
  • ...
Попробуй заменит файлы на такие:
test.php
Код:
<?php

if (isset($_GET["Text1"]) && $_GET["Text1"] != "")
{
echo "Вы ввели имя: " . $_GET["Text1"];
}
else
{
echo "Вы не ввели имя!";
}

?>
test.html
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Тест</title>
</head>
<body>
<form method="GET" action="test.php">
<P>Введите имя: <INPUT id="Text1" type="text" name="Text1"></P>
<P><INPUT id="Submit1" type="submit" value="Submit" name="Submit1"></P>
</form>
</body>
</html>
Т.е. везде POST заменить на GET.
 
A

Artexoid

#13
????
Что нужно дальше делать и как сделать чтобы это все на e-mail отправлялось ???????
Спасибо.
 
A

Artexoid

#15
Jkar
Объясни мне по подробнее, что куда сувать в смысле этот mail(), где его ставить надо ?????
Спасибо.
 
J
#16
Purpose: send mail
Usage: bool mail (string to, string subject, string message [, string additional_headers [, string additional_parameters]])

Availability: PHP 3, PHP 4 >= 4.0.0

mail() automatically mails the message specified in message to the receiver specified in to. Multiple recipients can be specified by putting a comma between each address in to. Email with attachments and special types of content can be sent using this function. This is accomplished via MIME-encoding - for more information, see http://www.zend.com/zend/spotlight/sendmimeemailpart1.php or RFC 1896 (Visit http://www.rfc-editor.org/).

mail() returns TRUE if the mail is sucessfully sent, FALSE otherwise.

Example 1. Sending mail.

mail("rasmus@lerdorf.on.ca", "My Subject", "Line 1\nLine 2\nLine 3");
 
G

GOsha

#17
Вот перевод, если совсем лениво.

Описание
bool mail (string to, string subject, string message [, string additional_headers [, string additional_parameters]])

mail() автоматически отправляет сообщение message получателю to. Можно специфицировать несколько получателей, разделив запятой адреса в to. С помощью этой функции можно высылать Email с присоединением/attachment и содержимое специальных типов. Это делается через MIME-кодировку.
Могут помочь и следующие RFC-документы: RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048 и RFC 2049.

mail() возвращает TRUE, если почта была успешно принята для доставки, FALSE в ином случае.

Предупреждение!
Windows-реализация mail() во многом отличается от Unix-реализации. Во-первых, она не использует локальный экзешник для составления сообщений, а работает лишь по прямым сокетам, что означает, что MTA должен прослушивать сетевой сокет (который может находиться на локальной или удалённой машине). Во-вторых, специальные шапки/headers вроде From:, Cc:, Bcc: и Date: не интерпретируются MTA, а разбираются в PHP.
PHP < 4.3 поддерживал только header-элемент Cc: (и был чувствительным к регистру).
PHP >= 4.3 поддерживает все элементы шапки и нечувствителен к регистру символов.

Пример 1. Отправка почты.
mail("joecool@example.com", "My Subject", "Line 1\nLine 2\nLine 3");

Если передаётся четвёртый строковой аргумент, эта строка вставляется в конце шапки/header. Обычно это используют для добавления дополнительных шапок. Несколько дополнительных шапок разделяются символами carriage return и newline.

Примечание: вы обязаны использовать \r\n для разделения шапок, хотя некоторые почтовые агенты Unix могут работать с одиночными символами newline (\n).

Пример 2. отправка посты с дополнительными шапками/header.
mail("nobody@example.com", "the subject", $message,
"From: webmaster@$SERVER_NAME\r\n"
."Reply-To: webmaster@$SERVER_NAME\r\n"
."X-Mailer: PHP/" . phpversion());

Параметр additional_parameters можно использовать для передачи дополнительных параметров программе, сконфигурированной для использования при отправке почты установкой конфигурации sendmail_path. Например, это можно применять для установки адреса отправителя при использовании sendmail. Вам может понадобиться добавить пользователя под которым работает ваш web-сервер, в вашу sendmail-конфигурацию для предотвращения добавления шапки 'X-Warning!' к сообщению, когда вы устанавливаете отправителя с использованием этого метода.Пример 3. Отправка почты с дополнительными шапками/headers и установка дополнительного параметра командной строки.
mail("nobody@example.com", "the subject", $message,
"From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVER_NAME");

Примечание: этот пятый параметр был введён в PHP 4.0.5.

Вы можете также использовать простую технику построения строк для создания сложных email-сообщений.Пример 4. Отправка сложной email.
/* получатели */
$to = "Mary <mary@example.com>" . ", " ; //обратите внимание на запятую
$to .= "Kelly <kelly@example.com>";

/* тема\subject */
$subject = "Birthday Reminders for August";

/* сообщение */
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

/* Для отправки HTML-почты вы можете установить шапку Content-type. */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* дополнительные шапки */
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";

/* и теперь отправим из */
mail($to, $subject, $message, $headers);

Примечание: убедитесь, что у вас нет символов newline в to или в subject, иначе почта может не отправиться корректно.
 
X

x3Rg1s

#18
Здравствуйте, мне нужно узнать, как отослать несколько переменных на мой почтовый ящик. Вот код, который представляет собой два поля и кнопку. Только это всё слегка не работает - когда я писал, то понимал, что без чужой помощи не обойтись:
Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Primer</title>
</head>
<body>
<form method="GET" action= send() >
<input type=text name="fn" value="" size="30" maxlength="30" id="fname">
<input type=text name="ln" value="" size="30" maxlength="30" id="lname">
<input type="submit" name="save" value="Confirm" checked>
</form>

<script language="PHP" type="text/php">
function send() {
<?php
 mail("x3rg1s@yahoo.co.uk", "Variables", fn, ln);
?>
}
</script>

</body>
</html>
<form method="GET" action= "send()" > - в этой строке я пытался заставить его вызывать функцию.
<script language="PHP" type="text/php"> - вот эта бредовая строка должна сообщить html файлу, что начинается php код, да и вся нижеследующая функция предназначена скорее для человека, чем компьютера. Для меня очень нежелательно размещать код в двух файлах, поэтому я и засунул php в html, ведь таким образом поступают с Java.

У меня задача послать html-письмо пользователю, он откроет его на почтовом сервере Yahoo и должен будет вписать данные в поля, после чего нажать кнопочку 'confirm'.
И ещё. Я экспериментировал с примерами, приведенными здесь. Когда я открыл письмо и заполнил поля на своём Yahoo-ящике, после нажатия кнопки, он сказал, что я пытаюсь послать данные. Вот это вылезшее окошко - крайне нежелательно. Можно ли сделать что-нибудь с кодом, чтобы Yahoo молчало?
 
A

Andrew Stephanoff

#19
<?php
if (isset($_GET["fn"]) && isset($_GET["ln"]))
    mail("x3rg1s@yahoo.co.uk", "Variables", fn, ln);
?>
<html>
<head>
    <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
    <title>Primer</title>
</head>
<body>
    <form method='GET'>
        <input type='text' name='fn' size='30' maxlength='30' />
        <input type='text' name='ln' size='30' maxlength='30' />
        <input type='submit' value='Confirm' />
    </form>
</body>
</html>
попробуй так...
 
X

x3rg1s

#20
Извините, но код не работает. Когда я запускаю файл с диска C и жму ‘Submit’, то строка адреса меняется так:
file:///C:/primer.htm?fn=x3r&ln=g1s
И это всё, что происходит. Если запускать страницу с сайта или с почтового ящика, то же самое - просто добавляется «?fn=x3r&ln=g1s»

Ящик я проверял. Он пустой. Ещё вдобавок форма ничего не делает с русскими символами, но это не проблема, т.к. русский шрифт будет кодироваться в iso-8859-1. В ней русский символ выглядит так: #1079;
И, если интересно, то можно поэкспериментировать с формой здесь.
 
Статус
Закрыто для дальнейших ответов.