Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не отправляется почта (ошибки нет)
 
 автор: LINKIN   (05.06.2008 в 19:08)   письмо автору
 
 

<?php 
$action
=$_POST['action'];
if (!empty(
$action))
{
    if(!empty(
$mail_from))
    {
        if(!
preg_match("/[0-9a-z_]+@[0-9a-z_\.]+\.[a-z]{2,3}/i"$mail_from));
            {
                
$action="";
                echo(
"Введите адрес электронной почты в виде address@server.coom"); exit();
            }
    
$mail_from substr($_POST["mail_from"],0,32);
    
$mail_from trim($mail_from);
    
$mail_from htmlspecialchars(stripslashes($mail_from));
    
$mail_subject substr($_POST['$mail_subject'],0,64);
    
$mail_subject trim($mail_subject);
    
$mail_subject htmlspecialchars(stripslashes($mail_subject));
    
$mail_msg substr($_POST["$mail_msg"],0,1024);
    
$mail_msg trim($mail_msg);
    
$mail_msg htmlspecialchars(stripslashes($mail_msg));
    
$mail_msg=$mail_from.$mail_msg;      
    if(
mail("site@"$mail_subject$mail_msg)) 
        {
        echo(
"Сообщение успешно отправлено <br><a href=\"javascript:history.go(-1)\" 
class=\"text\">Вернуться назад</a>."
);
        } 
    else
        {
        echo(
"При отправлении сообщения произошла ошибка! <br><a href=\"javascript:history.go(-1)\" 
class=\"text\">Вернуться назад</a>."
);
        }
    } 
else
        {
        echo(
"Введите адрес для обратной связи! <br><a href=\"javascript:history.go(-1)\" 
class=\"text\">Вернуться назад</a>."
);
        }
}
?>

   
 
 автор: LINKIN   (05.06.2008 в 19:11)   письмо автору
 
   для: LINKIN   (05.06.2008 в 19:08)
 

Отказует отослать почему.

   
 
 автор: BinLaden   (05.06.2008 в 19:49)   письмо автору
 
   для: LINKIN   (05.06.2008 в 19:11)
 

Довольно интригующий код.

1. $mail_from нигде не определена

2. Шаблон /[0-9a-z_]+@[0-9a-z_\.]+\.[a-z]{2,3}/i удовлетворяет не всем e-mail адресам

3. "$_POST['$mail_subject']" и "$_POST["$mail_msg"]", очевидно, неверное обращение к элементам "mail_subject" и "mail_msg"

4. Зачем применять к тексту сообщения и теме htmlspecialchars()? А stripslashes()? Не вижу, чтобы тут проверялось значение magic_quotes_gpc.

   
 
 автор: LINKIN   (05.06.2008 в 20:09)   письмо автору
 
   для: BinLaden   (05.06.2008 в 19:49)
 

reaktor.net.ua переменные передаются post.

   
 
 автор: BinLaden   (05.06.2008 в 20:18)   письмо автору
 
   для: LINKIN   (05.06.2008 в 20:09)
 

> передаются post

Лучше скажите это интерпретатору.

   
 
 автор: LINKIN   (05.06.2008 в 20:57)   письмо автору
 
   для: LINKIN   (05.06.2008 в 20:09)
 

смотри, написал reaktor.net.ua.

   
 
 автор: mihdan   (06.06.2008 в 11:42)   письмо автору
 
   для: LINKIN   (05.06.2008 в 19:08)
 

$mail_from - сначала проверяете несуществующую переменную, у потом определяете ее!

   
 
 автор: LINKIN   (06.06.2008 в 11:49)   письмо автору
 
   для: mihdan   (06.06.2008 в 11:42)
 

<table cellpadding="0" cellspacing="0">
<tr><td><p align="left"><font size="+1">Обратная связь</font></p></td></tr>
<tr><td><p class="text" align="left">Введите адрес электронной почты для обратной связи: </p></td></tr>
<tr><td><input type="text" value="" maxlength="255" size="32" name="mail_from"></td></tr>                      
<tr><td><p class="text">Введите тему вашего сообщения: </p></td></tr>
<tr><td><input type="text" value="" maxlength="255" size="64" name="mail_subject"></td></tr>
<tr><td><p class="text">Введите текст самого сообщения: </p></td></tr>
<tr><td><textarea cols="39" rows="10" type="text" value="" maxlength="1024" name="mail_msg"></textarea></td></tr>
<tr><td><input type="submit" value="Послать">
<input type="reset" value="Очистить"></td></tr>
</table>

   
 
 автор: AcidTrash   (06.06.2008 в 11:53)   письмо автору
 
   для: LINKIN   (06.06.2008 в 11:49)
 

Добавьте после
$action=$_POST['action'];
строку
$mail_from=$_POST['mail_from'];

P.S. Я смотрю вы любите шиворот на выворот делать.

   
 
 автор: LINKIN   (06.06.2008 в 12:10)   письмо автору
 
   для: AcidTrash   (06.06.2008 в 11:53)
 

такой самый результат.

   
 
 автор: LINKIN   (06.06.2008 в 12:11)   письмо автору
 
   для: LINKIN   (06.06.2008 в 12:10)
 

<form method="post" action="sendmail.php" class="form_set">
<table cellpadding="0" cellspacing="0">
<tr><td><p align="left"><font size="+1">Обратная связь</font></p></td></tr>
<tr><td><p class="text" align="left">Введите адрес электронной почты для обратной связи: </p></td></tr>
<tr><td><input type="text" value="" maxlength="255" size="32" name="mail_from"></td></tr>                      
<tr><td><p class="text">Введите тему вашего сообщения: </p></td></tr>
<tr><td><input type="text" value="" maxlength="255" size="64" name="mail_subject"></td></tr>
<tr><td><p class="text">Введите текст самого сообщения: </p></td></tr>
<tr><td><textarea cols="39" rows="10" type="text" value="" maxlength="1024" name="mail_msg"></textarea></td></tr>
<tr><td><input type="submit" value="Послать">
<input type="reset" value="Очистить"></td></tr>
</table>
</form>

   
 
 автор: AcidTrash   (06.06.2008 в 12:19)   письмо автору
 
   для: LINKIN   (06.06.2008 в 12:11)
 

Стоп! А что такое $_POST['action'] в sendmail.php, откуда он берется?
Что-то я не вижу чтобы такой параметр передавался из формы.

Если только сделать
<input type="submit" name="action" value="Послать"></td></tr> 

   
 
 автор: LINKIN   (06.06.2008 в 12:24)   письмо автору
 
   для: AcidTrash   (06.06.2008 в 12:19)
 

хз, я думал это если кнопка нажата "send".

   
 
 автор: LINKIN   (06.06.2008 в 12:27)   письмо автору
 
   для: LINKIN   (06.06.2008 в 12:24)
 

nu-ns.com.ua не пододит почта
Нужно значит экранирование.

   
 
 автор: LINKIN   (06.06.2008 в 12:39)   письмо автору
 
   для: LINKIN   (06.06.2008 в 12:27)
 

/[0-9a-z_\-]+@[0-9a-z_\.\-]+\.[a-z]{2,4}/i, и так отказует.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования