|
 2.2 Кб |
|
| Подскажите, пожалуйста, что у меня неправильно в скрипте для отправки почты на e-mail
Проблема в том, что если посетитель неправильно набрал e-mail, то сообщение не доходит
Я чайник, помогите, ПЛЗ!
код файла zakaz.html с формой
<h1 class="H1">ФОРМА ЗАКАЗА</h1>
<form action="/sendmail.php" method="post" name="form1" target="_blank" id="form1">
<table width="80%" border="0" cellpadding="0" cellspacing="0" class="table">
<tr>
<td width="27%">Ваше имя * </td>
<td width="73%"><label>
<input name="name" type="text" id="name" size="20" maxlength="25" />
<br />
</label></td>
</tr>
<tr>
<td>Ваш E-mail * </td>
<td><label>
<input name="email" type="text" id="email" size="20" maxlength="25" />
<br />
</label></td>
</tr>
<tr>
<td>Телефон, факс </td>
<td><label>
<input name="tel" type="text" id="tel" size="20" maxlength="25" />
<br />
</label></td>
</tr>
<tr>
<td>Ваш запрос * </td>
<td><label>
<textarea name="vopros" cols="40" rows="10" id="vopros"></textarea>
</label></td>
</tr>
</table>
<p>
<label>
<input name="send" type="submit" id="send" value="Отправить" />
</label>
</p>
</form>
<p class="text">* Поля, обязательные для заполнения. Внимание! Если Вы не заполните эти поля, заказ до нас не дойдет! </p>
<table width="90%" border="0" cellspacing="0" cellpadding="0">
</table>
код файла со скриптом sendmail.php
<?php
$recipient="7379248@mail.ru";
$subject="Вопрос с сайта";
$message="$name спрашивает:\n";
$message.="$vopros\n";
$message.="E-mail отправителя: $email";
$message.="Телефон: $tel";
$headers="From: $email\n";
$headers.="X-Sender: $email\n";
$email = "q@q";
if ($email) {
if (mail ($recipient, $subject, $message, $headers)) {
print ("<h3><center>$name, Ваш вопрос отправлен. Ждите ответа!</center></h3>\n");
}}
else{
print ("<h3><center>$name, Вы не указали свой электронный адрес!</center></h3>\n");
}
?> | |
|
|
|
|
|
|
|
для: IrinaVS
(20.11.2008 в 17:55)
| | Все правильно, а вы какое ожидаете поведение от скрипта. Куда должно приходить письмо, если адрес не правильный и не существует? | |
|
|
|
|
|
|
|
для: cheops
(20.11.2008 в 18:03)
| | Куда должно приходить письмо
Известно куда... на деревню дедушке | |
|
|
|
|
|
|
|
для: cheops
(20.11.2008 в 18:03)
| | Я не то имела ввиду...Хочется, чтобы, если посетитель наберет неправильный СВОЙ адрес в графе "Ваш e-mail" письмо не пропадало, а выскакивала фраза "Вы ввели неправильный e-mail" | |
|
|
|
|
|
|
|
для: cheops
(20.11.2008 в 18:03)
| | else{
print ("<h3><center>$name, Вы не указали свой электронный адрес!</center></h3>\n");
}
Тогда для чего вот это выражение?? Чего то я не поняла... | |
|
|
|
|
|
|
|
для: IrinaVS
(21.11.2008 в 08:46)
| | Это только указывает на пустое поле формы, а не на то, что адрес указанный в нем реальный. Я ведь могу написать в поле и: tufta@tufta.xaxa. Теперь попробуйте отослать на этот адрес письмо. Sendmail отпавит в любом случае по указанному адресу сообщение ("синтаксис" ввода адреса почтового можно проверить), а вот существует ли такой адрес реально Sendmail не проверяет. | |
|
|
|
|
|
|
|
для: sim5
(21.11.2008 в 08:52)
| | Я наверное уже надоела со своими глупыми вопросами, но при данном коде, даже если не заполнить поле "Ваш e-mail" Выскакивает "Ваш запрос отправлен, ждите ответа!" , а не "Вы не заполнили поле E-mail" То есть письмо уходит, посетитель в уверенности, что он отправил запрос на товар, а письмо то не доходит на наш адрес, а где то теряется...... | |
|
|
|
|
|
|
|
для: IrinaVS
(21.11.2008 в 09:07)
| | Ну если говорить о самой проверке, то введен адрес или нет, нужно проверять и сообщать об этом пользователю до отправки сообещения, а не во время ее. То есть, вот этот подход в коде:
<?
if ($email) {
if (mail ($recipient, $subject, $message, $headers)) {
print ("<h3><center>$name, Ваш вопрос отправлен. Ждите ответа!</center></h3>\n");
}}
else{
print ("<h3><center>$name, Вы не указали свой электронный адрес!</center></h3>\n");
}
|
в корне не верен. Вы должны сперва проверить заполнение формы, и правильность заполнения всех ее полей, и уж только после этого отправлять сообщение. | |
|
|
|
|
|
|
|
для: IrinaVS
(20.11.2008 в 17:55)
| | Элементарную проверку на корректность email, если он важен, не пробовали сделать?
Можно было воспользоваться поиском на форуме и найти.
К примеру
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=22051
UPD. Правда здесь не нужен символ _ в домене. | |
|
|
|