Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> форма отправки почтой не работает, почему - не пойму 
:(
    Опции темы
nadyui
Дата 30.5.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 30.10.2005

Репутация: нет
Всего: нет



Нажимаю кнопку "отправить" - форма вроде уходит, сообщения об ошибках не выдается, но никакого письма я не получаю. Где тут может быть собака зарыта?


Код

<?php

$form_blok = "

 <left> 

<form method=\"post\" action=\"$PHP_SELF\">
<br><p style=\"line-height: 100%; margin-top: 0; margin-bottom: 0\"><font color=\"F9FEFA\" size=\"1\">* Ваше имя:<br>
<input type=\"text\" name=\"sender_name\" size=\"30\"><br>

<p style=\"line-height: 100%; margin-top: 0; margin-bottom: 0\">* Организация:<br>
<input type=\"text\" name=\"company_name\" size=\"30\"><br>

<p style=\"line-height: 100%; margin-top: 0; margin-bottom: 0\">* Город:<br>
<input type=\"text\" name=\"city_name\" size=\"30\"><br>

<p style=\"line-height: 100%; margin-top: 0; margin-bottom: 0\">* E-mail:<br>
<input type=\"text\" name=\"sender_mail\" size=\"30\"><br>

<p style=\"line-height: 100%; margin-top: 0; margin-bottom: 0\">* Сообщение:<br>
<textarea name=\"message\" cols=30 rows=5 wrap=virtual></textarea><br></td></tr>

<tr>
<td align=left valign=top   height=\"5\">
<input  type=\"reset\" name=\"reset\" value=\"Очистить\">

<input type=\"hidden\" name=\"op\" value=\"ds\">
<input  type=\"submit\" name=\"submit\" value=\"Послать\"></p></font>
</td></tr>

</form>
</table>
";

if ($op != "ds") {

    echo "$form_blok";
}

else if ($op == "ds"){
   if ($sender_name ==""){
    $name_err = "<font color=\"red\" >Вы не заполнили поле <b>ИМЯ</b>!</font><br>";
    
    $send = "no";
    }

if ($company_name ==""){
    $name_err = "<font color=\"red\" >Вы не заполнили поле <b>Организация</b>!</font><br>";
    
    $send = "no";
    }

if ($city_name ==""){
    $name_err = "<font color=\"red\" >Вы не заполнили поле <b>Город</b>!</font><br>";
    
    $send = "no";
    }

  if ($sender_mail =="") {
    $mail_err ="<font color=\"red\" >Вы не заполнили поле <b>E-mail</b>!</font><br>";

    $send = "no";
    }

 else if(!preg_match("/^([a-z,0-9])+\@([a-z,0-9])+(\.([a-z,0-9])+)+$/", $sender_mail))
    
    {
    $mail_err1 = "<font color=\"red\" >Вы не правильно заполнили поле <b>E-mail</b>!</font><br>";

    $send = "no";
  }
if ($message ==""){
    $message_err = "<font color=\"red\" >Вы не заполнили поле <b>Сообщение</b>!</font><br>";
     
  $send = "no";
}

 
if ($send != "no"){

$msg= "Сообщение с сайта WWW\n";
$msg .= "Имя отправителя:\n\t\t$sender_name\n";
$msg .= "Организация:\n\t\t$company_name\n";
$msg .= "Город:\n\t\t$city_name\n";
$msg .= "E-mail отправителя:\n\t\t$sender_mail\n";
$msg .= "Сообщение: \n$message\n\n\n";

$to = "[email protected]";     
$subject = "Pismo from site";  
$mailheaders .="Reply-To: $mail\n\n";
mail ($from, $to, $subject, $msg, $mailheaders);

    $stringmess_ok = "Уважаемый $sender_name, ваше сообщение было успешно отправленно.<br>"; 

 echo "<center>$stringmess_ok<br>";
   echo "<a href=\"mess.php\" >Hазад</a><br></center>";
}

else if ($send == "no") {
echo "<center>";
    echo "$name_err";
    echo "$mail_err";
    echo "$message_err";
    echo "$mail_err1";
      echo "<a href=\"mess.php\" >Вернитесь назад и 
      повторите попытку</a><br>";

echo "</left>";
    }
}


?>


Это сообщение отредактировал(а) MoLeX - 30.5.2008, 16:11
PM MAIL   Вверх
MoLeX
Дата 30.5.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



1.

M
MoLeX
Модератор: пользуемся кнопкой КОД


2. где тестируешь скрипт, на локальном компьютере или на хостинге?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
nadyui
Дата 30.5.2008, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 30.10.2005

Репутация: нет
Всего: нет



на хостинге. там моя страничка красиво отображается, и даже очищается после отправки, только вот куда все это уходит....
PM MAIL   Вверх
MoLeX
Дата 30.5.2008, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



поговри с хостером на счет этого. вполне возможно запрещена отправка писем, т.е. они уходят в некуда. 

потестируй на локалке с заглушкой !sendmail.


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Nigel
Дата 30.5.2008, 21:26 (ссылка) |   (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: 7
Всего: 19



MoLeX, тут скорее не запрет отправки, а register_globals off.

nadyui, используйте $_POST
PM MAIL   Вверх
MoLeX
Дата 31.5.2008, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Nigel, да скорей всего так и есть. просто я глянул тока как она формирует mail() и все. 
уже давно надо использовать суперглобальные переменные.


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
nadyui
Дата 1.6.2008, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 30.10.2005

Репутация: нет
Всего: нет



Попробую $_Post, спасибо. 
А подскажите плиз где можно пример использования $_Post в форме отправки почтой посмотреть?
PM MAIL   Вверх
Brabus2008
Дата 1.6.2008, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 18.4.2008
Где: Харьков

Репутация: нет
Всего: нет



Цитата(nadyui @  1.6.2008,  20:34 Найти цитируемый пост)
А подскажите плиз где можно пример использования $_Post в форме отправки почтой посмотреть?

Да какой пример. Вот ты обращаешься к переменной: $sender_name , а нужно $_POST['sender_name']
PM ICQ   Вверх
nadyui
Дата 2.6.2008, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 30.10.2005

Репутация: нет
Всего: нет



Цитата

Да какой пример. Вот ты обращаешься к переменной: $sender_name , а нужно $_POST['sender_name']

Brabus2008, а объясни пожалуйста логику происходящего, потому что если я тупо заменяю $sender_name во всем скрипте на $_POST['sender_name'] он вообще перестает работать.

глобальную переменную $_POST надо сначала где-то отдельно объявить или как это грамотно делается?
И если да то в какой части моего скрипта, где input type или еще раньше?
Я извиняюсь что так дотошно выспрашиваю, просто пользуюсь логикой javascript  а в php я совсем новичок :(

И потом если я правильно поняла company_name и другие тоже тогда должны меняться на 
$_POST['company_name'] ??
PM MAIL   Вверх
bars80080
Дата 2.6.2008, 16:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



вам товарищ надо почитать основы php, многие вопросы сами отпадут и дело пойдёт быстрее
http://phpfaq.ru/
здесь не очень много материала, но очень полезного

смотря где меняете, если здесь:
Код

$msg .= "Имя отправителя:\n\t\t$sender_name\n";
// то надо
$msg .= "Имя отправителя:\n\t\t$_POST[sender_name]\n";
// но я бы написал:
$msg .= "Имя отправителя:\n\t\t".$_POST['sender_name']."\n";
// так понятнее

остальные переменные тоже надо аналогично менять
PM MAIL WWW   Вверх
nadyui
  Дата 3.6.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 30.10.2005

Репутация: нет
Всего: нет



Спасибо bars80080, поменяла все как вы рекомендуете - не работает, хоть застрелись.
Теперь страница с формой вообще не отображается :(
Выдается вот такое замечательное сообщение об ошибке:
syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
Вот подправленный код, что здесь не так?
Код




<?php

$_POST['form_blok'] = "

 <left> 

<form method=\"post\" action=\"$PHP_SELF\">
<br><p style=\"line-height: 100%; margin-top: 0; margin-bottom: 0\"><font color=\"F9FEFA\" size=\"1\">* Ваше имя:<br>
<input type=\"text\" name=\"sender_name\" size=\"30\"><br>

<p style=\"line-height: 100%; margin-top: 0; margin-bottom: 0\">* Организация:<br>
<input type=\"text\" name=\"company_name\" size=\"30\"><br>

<p style=\"line-height: 100%; margin-top: 0; margin-bottom: 0\">* Город:<br>
<input type=\"text\" name=\"city_name\" size=\"30\"><br>

<p style=\"line-height: 100%; margin-top: 0; margin-bottom: 0\">* E-mail:<br>
<input type=\"text\" name=\"sender_mail\" size=\"30\"><br>

<p style=\"line-height: 100%; margin-top: 0; margin-bottom: 0\">* Сообщение:<br>
<textarea name=\"message\" cols=30 rows=5 wrap=virtual></textarea><br></td></tr>

<tr>
<td align=left valign=top   height=\"5\">
<input  type=\"reset\" name=\"reset\" value=\"Очистить\">

<input type=\"hidden\" name=\"op\" value=\"ds\">
<input  type=\"submit\" name=\"submit\" value=\"Послать\"></p></font>
</td></tr>

</form>
</table>
";

if ($_POST['op'] != "ds") {

    echo "$_POST['form_blok']";
}

else if ($_POST['op'] == "ds"){
   if ($_POST['sender_name'] ==""){
    $_POST['name_err'] = "<font color=\"red\" >Вы не заполнили поле <b>ИМЯ</b>!</font><br>";
    
    $_POST['send'] = "no";
    }

if ($_POST['company_name'] ==""){
    $_POST['name_err'] = "<font color=\"red\" >Вы не заполнили поле <b>Организация</b>!</font><br>";
    
    $_POST['send'] = "no";
    }

if ($_POST['city_name'] ==""){
    $_POST['name_err'] = "<font color=\"red\" >Вы не заполнили поле <b>Город</b>!</font><br>";
    
    $_POST['send'] = "no";
    }

  if ($_POST['sender_mail'] =="") {
    $_POST['mail_err'] ="<font color=\"red\" >Вы не заполнили поле <b>E-mail</b>!</font><br>";

    $_POST['send'] = "no";
    }

 else if(!preg_match("/^([a-z,0-9])+\@([a-z,0-9])+(\.([a-z,0-9])+)+$/", $_POST['sender_mail']))
    
    {
    $_POST['mail_err1'] = "<font color=\"red\" >Вы не правильно заполнили поле <b>E-mail</b>!</font><br>";

    $_POST['send'] = "no";
  }
if ($_POST['message'] ==""){
    $_POST['message_err'] = "<font color=\"red\" >Вы не заполнили поле <b>Сообщение</b>!</font><br>";
     
  $_POST['send'] = "no";
}

 
if ($_POST['send'] != "no"){

$msg .= "Сообщение с сайта WWW\n";
$msg .= "Имя отправителя:\n\t\t".$_POST['sender_name']."\n";
$msg .= "Организация:\n\t\t".$_POST['company_name']."\n";
$msg .= "Город:\n\t\t".$_POST['city_name']."\n";
$msg .= "E-mail отправителя:\n\t\t".$_POST['sender_mail']."\n";
$msg .= "Сообщение: \n".$_POST['message']."\n\n\n";

$to = "[email protected]";     
$subject = "Pismo from site";  
$mailheaders ="Reply-To: $_POST['mail']\n\n";
mail ($_POST['from'], $_POST['to'], $_POST['subject'], $_POST['msg'], $_POST['mailheaders']);

    $_POST['stringmess_ok'] = "Уважаемый $_POST['sender_name'], ваше сообщение было успешно отправленно.<br>"; 

 echo "<center>$_POST['stringmess_ok']<br>";
   echo "<a href=\"mess.php\" >Hазад</a><br></center>";
}

else if ($_POST['send'] == "no") {
echo "<center>";
    echo "$_POST['name_err']";
    echo "$_POST['mail_err']";
    echo "$_POST['message_err']";
    echo "$_POST['mail_err1']";
      echo "<a href=\"mess.php\" >Вернитесь назад и 
    повторите попытку</a><br>";

echo "</left>";
    }
}


?>




Это сообщение отредактировал(а) nadyui - 3.6.2008, 15:01
PM MAIL   Вверх
bars80080
Дата 3.6.2008, 15:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



ну,

1. было бы не плохо помимо текста ошибки назвать номер строки и показать эту строку ошибки (он же там написал)
2. 
Код

     echo "$_POST['form_blok']";
echo "<center>$_POST['stringmess_ok']<br>";
   echo "$_POST['name_err']";
    echo "$_POST['mail_err']";
    echo "$_POST['message_err']";
    echo "$_POST['mail_err1']";
 - это всё неправильное использование переменных, возможно ругается на них. посмотрите на тот пример что я привёл и осознайте, где нужно какие кавычки ставить

3. не понятно зачем специально загонять что-то в массив пост:     $_POST['form_blok'] = " ... - зачем? хватило бы обычной переменной $form_block. вы же её потом используете в скрипте
сам массив $_POST нужен только для получения из него ПРИШЕДШИХ значений из формы

4. в этой строчке
Код

mail ($_POST['from'], $_POST['to'], $_POST['subject'], $_POST['msg'], $_POST['mailheaders']);
 переменные вообще не существуют, но судя вашей логике исправляется просто:
Код
mail ('а тут неизвестно вообще', $to, $subject, $msg, $mailheaders);




res: читать вам мануалы, не перечитать


Это сообщение отредактировал(а) bars80080 - 3.6.2008, 15:17
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0656 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.