|
|
|
| Здраствуйте дорогие!
есть две формы. Надоумне пожалуйста, какими скриптами их обработать с проверкой корректности ввода, и проверкой ввода вообще ( а обработанные данные направлять на э-майл) , формы та простые - осознаю решение простое (но бъюсь об стену)
1)форма подписи на новости:
<FORM NAME="novosti" ACTION="#">
<table align="left">
<caption class="glavpodpisforma">получать по эл.почте:</caption>
<tr><td class="podpisforma" align="justify" colspan="2">
<INPUT TYPE="checkbox" NAME="novnash" CHECKED><nobr>что нового у нас</nobr><br>
<INPUT TYPE="checkbox" NAME="novobsh">общие новости<BR>
<INPUT TYPE="checkbox" NAME="statyi">статьи<BR>
</td></tr>
<tr><td class="podpisforma">Имя:</td><td><input size="12"></td></tr>
<tr><td class="podpisforma">E-mail:</td><td><input size="12"></td></tr>
<tr><td colspan="2"><input type="submit" value="подписаться"></td></tr>
</table>
<!-- закрыли таблицу формы -->
</form>
2) форма отправить сообщение
<form method="post" name=ot_posetitelya action="">
<table>
<tr><td class="glavpodpisforma">введите сообщение:</td></tr>
<tr><td>
<textarea name="message" cols="40" rows="15"></textarea>
</td></tr>
<tr><td>
<select class="input" name="select" type="text" name=publikuem?>
<option value='opublikovat'>опубликовать вопрос</option>
<option value='neopublikovat'>не публиковать вопрос</option>
</select>
</td></tr>
<tr><td><INPUT TYPE=text NAME=email SIZE=20 MAXLENGTH=100 VALUE="e-mail"
style="font-size: 9pt" onfocus="this.select()"></td></tr>
<tr><td><INPUT TYPE=text NAME=email SIZE=20 MAXLENGTH=100 VALUE="подпись"
style="font-size: 9pt" onfocus="this.select()"></td></tr>
<tr><td colspan="2"><input type="submit" value="отправить"></td></tr>
</table> | |
|
|
|
|
|
|
|
для: Васили
(22.06.2007 в 15:04)
| | если так задам вопрос дорогие профессионалы:
<FORM NAME="novosti" ACTION="action.php">
<table align="left">
<caption class="glavpodpisforma">получать по эл.почте:</caption>
<tr><td class="podpisforma" align="justify" colspan="2">
<INPUT TYPE="checkbox" NAME="podpiska" CHECKED><nobr>что нового у нас</nobr><br>
<INPUT TYPE="checkbox" NAME="podpiska">общие новости<BR>
<INPUT TYPE="checkbox" NAME="podpiska">статьи<BR>
</td></tr>
<tr><td class="podpisforma">Имя:</td><td><input name="ot" size="12"></td></tr>
<tr><td class="podpisforma">E-mail:</td><td><input name="mail" size="12"></td></tr>
<tr><td colspan="2"><input type="submit" value="подписаться"></td></tr>
</table>
<!-- закрыли таблицу формы -->
</form>
|
обработка
<?
$podpiska=$_POST['podpiska']
if(empty($_POST['podpiska'];
echo "Выберете значение";
$ot=$_POST["ot"];
$mail=$_POST["mail"];
mail('people.levsha@inbox.ru', $podpiska, '_','от',$ot,_,'эл.почта',$mail);
?>
|
но локальный сервер(денвер установлен) выдает ошибку =(
п.с.
уважаемые интеллектуалы:
честное слово не ленюсь я, по крайне мере уж совсем точно.
почитывать начал месяц как
-второе издание "Самоучитель PHP 5" написанное,Кузнецовым Максимом Валерьевичем и Симдяновым Игорем Вячеславовичем.
-PHP 5. Практика создания web-сайтов, те же авторы
до этого за месяц освоил базово HTML - шаблоны страничек сделанны.
ПХП начал изучать с нулевым познанием программирования до этого(освоить очень хочу!),
тяжеловато дается мне, по крайне мере сейчас на первых порах-читаю литературу, приходит пока общее понимание а не конкретное знание.
Когда начинал ХТМЛ изучать было предупреждение - что это не есть язык программирование, это язык разметки и все тут, когда перешел к поползнавениям ПХП - понял даааааа ХТМЛ далеко не язык программирования (хотя знать его первонаперво необходимо для создания сайтов, но без знаний программирования рабочий интерактивный сайт,а не сайт визитку просто опублекованный в Инете, сделать не возможно).
надеюсь на ваше понимание и мудрую снисходительность,
с уважением Василий. | |
|
|
|
|
|
|
|
для: Васили
(27.06.2007 в 10:24)
| | возможно проблема в том, что по умолчанию <form method=GET а ты пытаешся брать значения из переменной POST, это раз... и еще выложи сам текст ошибки... так будет проще понять причину | |
|
|
|
|
|
|
|
для: Ravanger
(27.06.2007 в 12:30)
| | ошибку такую выдает
Parse error: parse error, unexpected T_IF in z:\home\levsha.ru\www\action.php on line 3
|
по поводу метода отправки, после того как указал в форме что method="post", ошибка та же показывается | |
|
|
|
|
|
|
|
для: Васили
(27.06.2007 в 10:24)
| | mail('people.levsha@inbox.ru', $podpiska, '_','от',$ot,_,'эл.почта',$mail); - неправильно mail()
и почему ты посылаешь данные методом GET а берешь постом? | |
|
|
|
|
|
|
|
для: CrazyAngel
(27.06.2007 в 12:41)
| | mail('people.levsha@inbox.ru', subject, body); - правильно так значит? | |
|
|
|
|
|
|
|
для: Васили
(27.06.2007 в 10:24)
| |
$ot=$_POST["ot"];
$mail=$_POST["mail"];
|
а это то зачем? | |
|
|
|
|
|
|
|
для: indexer
(27.06.2007 в 15:06)
| | попробовал такое, вроде получается:
<?
//определение адреса, на кот. будет отправляться форма
$mailto="people.levsha@inbox.ru";
if (empty($ok))
{
?>
<form name="form" method="post" action="<?echo $PHP_SELF;?>">
<table>
<tr><td class="glavpodpisforma">введите сообщение:</td></tr>
<tr><td>
<textarea name="question" cols="40" rows="15"></textarea>
</td></tr>
<tr><td>
<select class="input" type="text" name="publik">
<option value='opublikovat'>опубликовать вопрос</option>
<option value='neopublikovat'>не публиковать вопрос</option>
</select>
</td></tr>
<tr><td><INPUT TYPE="text" NAME="mailfrom" SIZE=20 MAXLENGTH=100 VALUE="e-mail"
style="font-size: 9pt" onfocus="this.select()"></td></tr>
<tr><td><INPUT TYPE="text" NAME="username" SIZE="20" MAXLENGTH="100" VALUE="подпись"
style="font-size: 9pt" onfocus="this.select()"></td></tr>
<tr><td colspan="2"><input type="submit" name="ok" value="отправить"></td></tr>
</table>
</form>
<?
}
else
{
//проверяем e-mail на корректность
if(!preg_match("/^([a-z,0-9,_,\-,\.])+\@([a-z,0-9,_,\-])+(\.([a-z,0-9])+)+$/", $mailfrom))
{
$error = "Не верно заполнено поле: <b>E-mail</b><br>";
}
if (empty($question))
{
$error .= "Не заполнено поле: <b>Ваш вопрос</b><br>";
}
if ($error)
{
echo $error;
echo "<br><a href=\"javascript:history.go(-1)\" class=\"text\">Вернуться назад</a>";
exit;
}
//формируем тело и тему сообщения
$subject="Вопрос от $mailfrom";
$body="Имя:\n$username\n\nE-mail:\n$mailfrom\n\nЧто:\n$publik\n\nКомментарии:\n$question";
//конвертируем из win в koi
$body=convert_cyr_string (stripslashes($body),w,k);
$subject=convert_cyr_string (stripslashes($subject),w,k);
//отправляем по почте...
$sucess = mail($mailto, $subject, $body, "From: $email\nX-Mailer: PHP/" . phpversion());
if ($sucess)
{
echo "Спасибо. Ваш вопрос отправлен.<br><br>";
echo "<a href=\"javascript:history.go(-1)\" class=\"text\">Вернуться назад</a>";
}
}
?>
|
после того как нажать отправить, вот что получается -
Это что значит, просто то что с локального сервера на эл.адрес не отправляется, а когда
сайт разместить на хостинге, тогда отправляться будет, верно?:
Notice: Undefined variable: error in z:\home\levsha.ru\www\vopros_otvet.php on line 80
[ убрать подсказку | никогда больше не показывать ]
Это предупреждение, вероятнее всего, возникает вследствие высокого уровня контроля ошибок в PHP, по умолчанию установленного в Денвере (E_ALL). Такой режим вывода ошибок является рекомендуемым и сильно помогает при отладке скриптов. Однако множество готовых скриптов требуют более низкого уровня ошибок.
Вы можете установить более слабый контроль ошибок одним из следующих способов:
Впишите в скрипты строчку:
Error_Reporting(E_ALL & ~E_NOTICE);
Этот способ особенно удобен, если в скрипте есть один файл (конфигурационный), который подключается всеми остальными.
Рекомендуемый способ. Создайте в директории со скриптом файл .htaccess следующего содержания:
php_value error_reporting 7
Исправьте в /usr/local/php/php.ini значение error_reporting на E_ALL & ~E_NOTICE. Этот способ не является рекомендуемым и может привести к серьезным неудобствам при отладке!
[Денвер: показать возможную причину ошибки]
Notice: Use of undefined constant w - assumed 'w' in z:\home\levsha.ru\www\vopros_otvet.php on line 90
Notice: Use of undefined constant k - assumed 'k' in z:\home\levsha.ru\www\vopros_otvet.php on line 90
Notice: Use of undefined constant w - assumed 'w' in z:\home\levsha.ru\www\vopros_otvet.php on line 91
Notice: Use of undefined constant k - assumed 'k' in z:\home\levsha.ru\www\vopros_otvet.php on line 91
Notice: Undefined variable: email in z:\home\levsha.ru\www\vopros_otvet.php on line 93
Спасибо. Ваш вопрос отправлен.
Вернуться назад
|
строка 80: if ($error)
строка 90: $body=convert_cyr_string (stripslashes($body),w,k);
строка 91: $subject=convert_cyr_string (stripslashes($subject),w,k);
строка 93: $sucess = mail($mailto, $subject, $body, "From: $email\nX-Mailer: PHP/" . phpversion()); | |
|
|
|