Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Отправка письма функ. mail() - немогу импортировать переменные [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 [2] 3 »   

> Без описания
EuGen Администратор
Отправлено: 17 Октября, 2007 - 16:16:31
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Совсем плохо. Ладно, как говорит evgenijj ложечку за маму, ложечку за папу:
PHP:
скопировать код в буфер обмена
  1.  
  2. //вот функция:
  3. function sendMail($sendInfo, $goodInfo)
  4. {
  5.    $header = "Mime-Version: 1.0";
  6.    $header .= "Content-type: text/html; charset="windows-1251"";
  7.    $header .= "To: ".$sendInfo['to'];
  8.    $header .= "Subject: ".$sendInfo['subject'];
  9.    $header .= "From: ".$sendInfo['from_name'].", <".$sendInfo['from_mail'].">";
  10.    $body .= "Вам написал(а):<b> ".$sendInfo['from_name']."</b>;";
  11.    $body .= "E-mail:<b> ".$sendInfo['from_mail']."</b>;";
  12.    $body .= "Удаленный IP-адресс:<b> ".$sendInfo['ip']."</b>;";
  13.    $body .= "Время написания:<b> ".$sendInfo['Sender_Time']."</b>;";
  14.    $body .= "Дата написания:<b> ".$sendInfo['Sender_Date']."</b>;";
  15.    $body .= "Комментарий:<b> ".$sendInfo['message']."</b>;";
  16.    $body .= "Товар:<b> ".$goodInfo['p_tovar']."</b>;";
  17.    $body .= "Код изделия:<b>".$goodInfo['p_kod']."</b>;";
  18.    $body .= "Артикул изделия:<b> ".$goodInfo['p_artikul']."</b>;";
  19.    $body .= "Посмотреть изделие(нажмите или скопируйте ссылку):";
  20.    $body .= "<a href=\\"http://site.ru/detali?товар=".$goodInfo['p_kod']."\\">Посмотреть товар</a>";
  21.    
  22.    if(mail($to, $subject, $body, $header))
  23.       echo "<b><center><span class="bodytext">СПАСИБО! Ваш заказ был успешно отправлен! </span></center></b>";  
  24.    else
  25.      echo "<b><center><span class="bodytext">Извините, но Ваш заказ не может быть отправлен прямо сейчас,!</span></center></b>";
  26. };
  27. //далее, объявляем массивы:
  28. $sendInfo=array(
  29. "ip"=>"",
  30. "to"=>"",
  31. "from_mail"=>"",
  32. "from_name"=>"",
  33. "subject"=>"",
  34. "message"=>"",
  35. "Sender_Date"=>"",
  36. "Sender_Time"=>""
  37. );
  38. $goodInfo=array(
  39. "kod"=>"",
  40. "good"=>"",
  41. "artikul"=>"",  
  42. );
  43. //далее, заполняем массивы данными:
  44. $sendInfo['ip'] = $REMOTE_ADDR;
  45. $sendInfo['Sender_Time'] = date("H.i");
  46. $sendInfo['Sender_Date'] = date("j.m.Y");
  47.  
  48. $sendInfo['from_mail'] = $_REQUEST["Email"];
  49. $sendInfo['from_name'] = $_REQUEST["Name"];
  50. $sendInfo['subject'] = "Новый заказ с сайта!";
  51. $sendInfo['to'] = "name@site.ru";
  52.  
  53.  
  54. $sql = "SELECT * FROM `корзина` where sid='".$sid."'";
  55. $res = mysql_query($sql);
  56. $row = mysql_fetch_object($res);   //берём запись из базы в переменную $row
  57. $goodInfo['p_tovar'] = $row->наименование;
  58. $goodInfo['p_kod'] = $row->код;
  59. $goodInfo['p_artikul'] = $row->артикул;
  60.  
  61. $sendInfo['message'] = $_REQUEST["text"];
  62. //и вызываем функцию:
  63. sendMail($sendInfo, $goodInfo);
  64.  


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
wmz38
Отправлено: 17 Октября, 2007 - 16:39:45
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




спасибо конечно, я реально признателен (не стоило все делать за меня, спасибо все же)- объяснение прошло, но извиняюсь конечно, вы объявили массив и заполнили с разными именами. Если я правильно все понял.
 
 Top
EuGen Администратор
Отправлено: 17 Октября, 2007 - 16:42:48
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Да, в goodsInfo нужно конечно же при инициализации:
PHP:
скопировать код в буфер обмена
  1.  
  2. $goodInfo=array(
  3.   "p_kod"=>"",
  4.   "p_tovar"=>"",
  5.   "p_artikul"=>""
  6.   );
  7.  

но это, думаю, на идею не влияет.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
wmz38
Отправлено: 17 Октября, 2007 - 17:15:29
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




кстати я вывел перед отправкой на почту, она выводится, все хоккей - но на почту письмо так и не приходит, хотя пишет что отправлено =))) .
я думаю дело тут(просто поправьте если что):
PHP:
скопировать код в буфер обмена
  1.  
  2. if(mail($to, $subject, $body, $header))
  3.  

и в функции переменная $to и $subject не объявлены
 
 Top
EuGen Администратор
Отправлено: 17 Октября, 2007 - 17:50:30
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Ясное дело, не объявлены. Я специально в этом месте до конца не дописал как надо, чтобы Вам пришлось поковыряться и подставить сюда значения нужных элементов массива, иначе бы в этом обсуждении (если бы я за Вас все сделал) не было бы смысла. Так что подставьте туда их, пожалуйста, и посмотрите результат (((*


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
wmz38
Отправлено: 17 Октября, 2007 - 22:56:53
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




Евген, огромное спасибо за поддержку - я реально рад, что не стали лить тонну грязи, а отнеслись по человечески!
буду усердно изучать материал!
 
 Top
EuGen Администратор
Отправлено: 18 Октября, 2007 - 09:21:43
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Хм. наш форум для этого и есть. Мы всегда относимся с пониманием к просьбам в рамках вопросов, не нарушающих правил форума (как например, Ваш). Так что обращайтесь, мы всегда поможем.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
wmz38
Отправлено: 05 Ноября, 2007 - 14:17:53
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




Вот проблема - ничерта непойму:
Если взять предыдущий вариант, то отправление на почту через mail(); функцию проходило, а теперь после включения доп. фишек в скрипт не проходит

Объясните пожалуйста почему функция sendMail не исполняет mail($to, $subject, $body, $header)?
PHP:
скопировать код в буфер обмена
  1.  
  2. // ВЫЗЫВАЕМ ФУНКЦИЮ ПОСЛЕ НАЖАТИЯ КНОПКИ ("Выполнить заказ")
  3. if ($_REQUEST["send"]==true)
  4. {
  5.  
  6. /*
  7. $to - адрес получателя письма
  8. $from_mail - адрес отправителя письма
  9. $from_name - имя отправителя письма
  10. $subject - тема письма
  11. $message - само сообщение в HTML-формате
  12. $file_name - путь к файлу, который надо прикрепить к письму
  13. (это может быть имя файла, выбранного в поле <input type=file name=file_name>)
  14. */
  15.  
  16. function sendMail($sendInfo, $goodInfo)
  17. {
  18.     $header = "Mime-Version: 1.0rn<br>";
  19.     $header .= "Content-type: text/html; charset="windows-1251"rn<br >";
  20.     $header .= "From: ".$sendInfo['from_name']."&nbsp;<".$sendInfo['from_mail']."><br >";
  21.         $to      = "To: ".$sendInfo['to']."<br >";
  22.     $subject = "Subject: ".$sendInfo['subject']."<br>";
  23.     $body .= "Вам написал(а):<b> ".$sendInfo['from_name']."</b>;<br >";
  24.     $body .= "E-mail:<b> ".$sendInfo['from_mail']."</b>;<br >";
  25.     $body .= "Удаленный IP-адресс:<b> ".$sendInfo['ip']."</b>;<br >";
  26.     $body .= "Время написания:<b> ".$sendInfo['Sender_Time']."</b>;<br >";
  27.     $body .= "Дата написания:<b> ".$sendInfo['Sender_Date']."</b>;<br >";
  28.     $body .= "Комментарий:<b> ".$sendInfo['message']."</b>;<br >";
  29.     $body .= "Товар:<b> ".$goodInfo['p_tovar']."</b>;<br >";
  30.     $body .= "Код изделия:<b>".$goodInfo['p_kod']."</b>;<br >";
  31.     $body .= "Артикул изделия:<b> ".$goodInfo['p_artikul']."</b>;<br >";
  32.     $body .= "Колличество:<b> ".$goodInfo['p_count']."</b>;<br >";
  33.     $body .= "Посмотреть изделие(нажмите или скопируйте ссылку):<br >";
  34.     $body .= "<a href="http://mysite.ru/detail.php?goods=".$goodInfo['p_kod'].""><b>".$goodInfo['p_kod']."</b>&nbsp;|&nbsp;<b>".$goodInfo['p_tovar']."</b>&nbsp;|&nbsp;<b> ".$goodInfo['p_artikul']."</b>&nbsp;|&nbsp;<b> ".$goodInfo['p_count']."</b>шт.</a>";
  35.  
  36.    // ВЫВОДИМ ПЕРЕМЕННЫЙ НА ЭКРАН, УБЕЖДАЕМСЯ ЧТО ПРЕМЕННЫМ ПЕРЕДАЮТСЯ ЗНАЧЕНИЯ
  37.    echo "$header<br>$to<br>$subject<br>$body";
  38.  
  39.    if(mail($to, $subject, $body, $header))
  40.    {
  41.        echo "<b><center><span class="bodytext">Спасибо! Наши менеджеры с вами скоро свяжутся! </span></center></b>";
  42.    }
  43.    else
  44.    {
  45.        echo "<b><center><span class="bodytext">Извините, но Ваш заказ не может быть отправлен прямо сейчас,!</span></center></b>";
  46.    }
  47. };
  48.  
  49.  
  50.  //далее, объявляем массивы:
  51.  $sendInfo=array(
  52.  "ip"=>"",
  53.  "to"=>"",
  54.  "from_mail"=>"",
  55.  "from_name"=>"",
  56.  "subject"=>"",
  57.  "message"=>"",
  58.  "Sender_Date"=>"",
  59.  "Sender_Time"=>""
  60.  );
  61.  $goodInfo=array(
  62.  "p_kod"=>"",
  63.  "p_tovar"=>"",
  64.  "p_artikul"=>"",
  65.  "p_count"=>""
  66.  );
  67.  //далее, заполняем массивы данными:
  68.  $sendInfo['ip'] = $REMOTE_ADDR;
  69.  $sendInfo['Sender_Time'] = date("H.i");
  70.  $sendInfo['Sender_Date'] = date("j.m.Y");
  71.  
  72.  $sendInfo['from_mail'] = $_REQUEST["Email"];
  73.  $sendInfo['from_name'] = $_REQUEST["Name"];
  74.  $sendInfo['subject'] = "Новый заказ с сайта!";
  75.  $sendInfo['to'] = "mail@mysite.ru";
  76.  
  77.  
  78.  $sql = "SELECT p1.kod,p1.name,p1.article,p2.sid,p2.quantity FROM tovar as p1,cart as p2 WHERE p2.sid='".$sid."' and p2.kod=p1.kod";
  79.  $res = mysql_query($sql);
  80.  $row = mysql_fetch_object($res);   //берём запись из базы в переменную $row
  81.  $goodInfo['p_tovar'] = $row->name;
  82.  $goodInfo['p_kod'] = $row->kod;
  83.  $goodInfo['p_artikul'] = $row->article;
  84.  $goodInfo['p_count'] = $row->quantity;
  85.  
  86.  $sendInfo['message'] = $_REQUEST["text"];
  87.  
  88. // ОБЪЯВЛЯЕМ ФУНКЦИЮ
  89. sendMail($sendInfo, $goodInfo);
  90.     //echo "<b><center><span class="bodytext">СПАСИБО! Ваш заказ был успешно отправлен! </span></center></b>";
  91.     echo"<br>Функция Активированна -> кнопка "Выполнить заказ" нажата!!";
  92.            
  93. }
  94.  
  95. else
  96. {
  97.   //echo "<b><center><span class="bodytext">Извините, но Ваш заказ не может быть отправлен прямо сейчас,!</span></center></b>";
  98.   echo "<br>Кнопка не нажата!!";
  99. }
  100.  
  101. // ФОРМА С ПОЛЯМИ ДЛЯ ЗАПОЛНЕНИЯ
  102. $form_blok = "
  103. <div class="bodytext">
  104.        <b>Вам необходимо заполнить заявку приведенную ниже</b>
  105. </form>
  106. <p>
  107. <script language="JavaScript">
  108.   function check_tail()
  109.   {
  110.      if(document.forms['sms'].text.value.length>1024)
  111.      {
  112. document.getElementById("counter").innerHTML = "<font color='red'>Слишком длиное сообщение!</font>";
  113. document.forms['sms'].text.value = document.forms['sms'].text.value.substring(0,1024);
  114.         return false;
  115.      }else
  116.      {
  117.    document.getElementById("counter").innerHTML = "<strong>набрано:</strong> "
  118.          +(document.forms['sms'].text.value.length)+" символов (макс. 1024)"; return true;
  119.      }
  120.   }
  121.   </script>
  122. <form action="#" method=POST name="sms">
  123.  
  124. <table cellspacing="0" cellpadding="3" border="0">
  125. <tr>
  126. <td class="bodytext"><strong>Ваше имя:</strong>
  127. <br>
  128. <input name=Name type="text" style="border-width:1px;border-style:solid;width:300px;" /></td>
  129. </tr>
  130. <tr>
  131. <td class="bodytext"><strong>Ваш email:</strong>
  132. <br>
  133. <input name=Email type="text" style="border-width:1px;border-style:solid;width:300px;" /></td>
  134. </tr>
  135. <tr>
  136. <td><img src="counter.php?asa%aqf%=123a&?a_generate" WIDTH="88" HEIGHT="31" BORDER=0></td>
  137. </tr>
  138. <tr>
  139. <td><input type="text" name="image"></td>
  140. </tr>
  141. </table>
  142. <div align="left" class="bodytext"><strong>Комментарий:</strong></div>
  143.  
  144. <textarea name=text rows="8" class="bodytext" onChange="if (!check_tail()) event.returnValue = false;" onKeyUp="if (!check_tail()) event.returnValue = false;" style="border-width:1px;border-style:solid;width:500px;"></textarea>
  145. </p>
  146. <div align="left" class="bodytext" id="counter">
  147. </div>
  148. <div align="center" class="bodytext">
  149. <script language="JavaScript">
  150. check_tail();
  151. </script>
  152. </div>
  153. <br>
  154. <div class="bodytext">
  155. <input type="hidden" name="op" value="ds"><br>
  156. <input type="submit" name=send value="Выполнить заказ ">
  157. </form></div></div>";
  158.  
  159. // ПРОВЕРКА НА ЗАПОЛНЕНИЕ ПОЛЕЙ В ФОРМЕ
  160. if ($op != "ds")
  161. {
  162.  echo "$form_blok";
  163. }
  164. else if ($op == "ds")
  165. {
  166.   if (strlen($_REQUEST["Name"]) > 15)
  167.   {
  168.     $name_err = "<font color="red" class="bodytext">Имя не должно быть быть длинее, чем 15 букв!</font><BR>";
  169.     $send = "no";
  170.   }
  171.  else if (strlen($_REQUEST["Name"]) < 4)
  172.   {
  173.     $name_err = "<font color="red" class="bodytext">Имя не должно быть короче, чем 4 буквы!</font><BR>";
  174.     $send = "no";
  175.   }
  176.  else  if ($_REQUEST["Name"] =="")
  177.   {
  178.     $name_err = "<font color="red" class="bodytext">Вы не заполнили поле <b>Ваше имя</b>!</font><br>";
  179.     $send = "no";
  180.   }
  181. // ПРОВЕРЯЕМ МЫЛО
  182.  
  183.  if (strlen($_REQUEST["Email"]) > 40)
  184.   {
  185.     $mail_err = "E-mail не должен быть длиннее, чем 40 символов!<BR>";
  186.     $send = "no";
  187.   }
  188.  else if ($_REQUEST["Email"] =="")
  189.   {
  190.     $mail_err ="<font color="red" class="bodytext">Вы не заполнили поле <b>E-mail</b>!</font><br>";
  191.     $send = "no";
  192.   }
  193.  else if(!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $_REQUEST["Email"]))
  194.   {
  195.     $mail_err1 = "<font color="red" class="bodytext">Вы не правильно заполнили поле <b>E-mail</b>, формат заполнения должен быть таким: name@somesite.ru!</font><br>";
  196.     $send = "no";
  197.   }
  198. // ОБРАБАТЫВАЕМ КАРТИНКУ
  199.  $txt=fopen('cr.dat',"r");
  200.  $code=fgets($txt,100);
  201.  fclose($txt);
  202.  
  203.  if ($image !== $code)
  204.   {
  205.     $message_err_img = "<font color="red" class="bodytext">Повторите код, указанный на картинке</font><br>";
  206.     $send = "no";
  207.   }
  208.  
  209. //  ВЫВОДИМ ОШИБКУ ПРОВЕРКИ
  210.  if ($send == "no")
  211.   {
  212.     echo "<center>";
  213.     echo "$message_err_img";
  214.     echo "$name_err";
  215.     echo "$mail_err";
  216.     echo "$mail_err1";
  217.     echo "<a href="cart_test1.php" class="bodytext">Вернитесь назад и повторите попытку</a><br>";
  218.     echo "</center>";
  219.   }
  220. }
  221.  
 
 Top
EuGen Администратор
Отправлено: 06 Ноября, 2007 - 09:45:25
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Брр.. странно Вы как-то делаете. Во-первых, Вы объявляете функцию условно. То есть функция у Вас объявляется только если "Кнопка нажата". Может быть, так оно и задумано, но я бы рекомендовал избегать таких конструкций, так как в дальнейшем это может усложнить понимание скрипта. Во-вторых, Вы что-то делаете до того, как идет проверка данных формы. Какой смысл писать проверку правильности после того, как уже сделана отправка? (которая у Вас происходит при единственной проверке - нажата ли кнопка).
В-третьих, нет смысла писать так:
PHP:
скопировать код в буфер обмена
  1.  
  2. if ($_REQUEST["send"]==true)
  3. {
  4. ...
  5. }
  6.  

Потому что достаточно проверять, установлен ли такой элемент массива. Плюс к тому, в $_REQUEST попадают еще и куки, которые имеют больший приоритет, чем $_GET и $_POST переменные. Так как форма у Вас передает данные методом POST, то разумнее писать:

И, наконец, в-четвертых, приведите пример результатов работы скрипта - что происходит, когда кнопку все-таки нажмут? Далее, Вы делали дампы переданных в sendMail переменных? что Вы видите там?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
wmz38
Отправлено: 06 Ноября, 2007 - 10:19:44
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




Спасибо EuGen.
Тоесть другими словами последовательность кода при веденного выше идет шиворот на выворот. В принципе я уже думал об этом, поэтому выложил весь скрипт, так как не совсем понимаю как может быть организованна последовательность.

Цитата:
И, наконец, в-четвертых, приведите пример результатов работы скрипта - что происходит, когда кнопку все-таки нажмут? Далее, Вы делали дампы переданных в sendMail переменных? что Вы видите там?

1. выбираем товар
2. заходим в корзину и видим:
--- выбранный товар, тут все верно - отображается как задуманно
ниже строкой:
--- Кнопка не нажата!!
еще ниже строкой:
--- Вам необходимо заполнить заявку приведенную ниже
еще ниже строкой:
--- форма("имя", "емайл", "изображение картинки", п"комментарий")
3. заполняем форму правильно, нажимаем кнопку "выполнить" - видим:
Цитата:
Mime-Version: 1.0
Content-type: text/html; charset="windows-1251"
From: wmz38

To: mail@mysite.ru

Subject: Новый заказ с сайта!

Вам написал(а): wmz38;
E-mail: wmz38@yandex.ru;
Удаленный IP-адресс: 82.140.16.83;
Время написания: 11.12;
Дата написания: 6.11.2007;
Комментарий: qqqqqq;
Товар: Кольцо;
Код изделия:2132;
Артикул изделия: К05Б;
Колличество: 1;
Посмотреть изделие(нажмите или скопируйте ссылку):
2132 | Кольцо | К05Б | 1шт.

Извините, но Ваш заказ не может быть отправлен прямо сейчас,!

Функция Активированна -> кнопка "Выполнить заказ" нажата!!

4. если форму заполняем неправильно (по коду можно глянуть какие проверки), то видим:

Цитата:
Mime-Version: 1.0
Content-type: text/html; charset="windows-1251"
From: wmz38

To: mail@mysite.ru

Subject: Новый заказ с сайта!

Вам написал(а): wmz38;
E-mail: wmz38@yandex.ru;
Удаленный IP-адресс: 82.140.16.83;
Время написания: 11.12;
Дата написания: 6.11.2007;
Комментарий: qqqqqq;
Товар: Кольцо;
Код изделия:2132;
Артикул изделия: К05Б;
Колличество: 1;
Посмотреть изделие(нажмите или скопируйте ссылку):
2132 | Кольцо | К05Б | 1шт.

Извините, но Ваш заказ не может быть отправлен прямо сейчас,!

Функция Активированна -> кнопка "Выполнить заказ" нажата!!

Повторите код, указанный на картинке
Имя не должно быть короче, чем 4 буквы!
Вы не заполнили поле E-mail!
Вернитесь назад и повторите попытку
 
 Top
EuGen Администратор
Отправлено: 06 Ноября, 2007 - 12:35:26
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Нужно быть уверенным, что:
PHP:
скопировать код в буфер обмена
  1.  
  2. mail("To: mail@mysite.ru", "Subject: Новый заказ с сайта!", "тут ваше сообщение", "тут ваши заголовки");
  3.  

дойдет. Я в этом сильно сомневаюсь. Потому что вряд ли есть такой e-mail - "To: mail@mysite.ru". Все-таки нужно указывать "mail@mysite.ru". Это вроде слишком очевидно.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
wmz38
Отправлено: 06 Ноября, 2007 - 13:04:27
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




EuGen, естественно нет накакого mysite.ru - я все замаскировал, честно говоря нехочу светить сайтом. У меня сейчас есть рабочий код БЕЗ проверок, он доходит на почту.
 
 Top
evgenijj
Отправлено: 06 Ноября, 2007 - 13:32:51
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




wmz38 пишет:
EuGen, естественно нет накакого mysite.ru - я все замаскировал, честно говоря нехочу светить сайтом. У меня сейчас есть рабочий код БЕЗ проверок, он доходит на почту.

Дело не в mysite, а в том, что ты передаешь функции неправильные значения. Посмотри описание функции
http://php.su/functions/?mail
Там и пример есть
mail("joecool@example.com", "My Subject", "Line 1nLine 2nLine 3");
и сравни как у тебя
mail("To: mail@mysite.ru", "Subject: Новый заказ с сайта!", "тут ваше сообщение", "тут ваши заголовки");

wmz38 пишет:

а теперь после включения доп. фишек в скрипт не проходит

А не надо от себя дописывать всякую фигню
PHP:
скопировать код в буфер обмена
  1.  
  2. $header .= "Content-type: text/html; charset=\"windows-1251\"\r\n<br >";
  3. $header .= "From: ".$sendInfo['from_name']."&nbsp;<".$sendInfo['from_mail']."><br >";
  4. $to      = "To: ".$sendInfo['to']."<br >";
  5.  

Какой html в заголовках письма?!?!?!
 
 Top
EuGen Администратор
Отправлено: 06 Ноября, 2007 - 13:35:12
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Я и имел ввиду что нет адреса "to: траляля", а есть только "траляля" ... ((* ..


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
wmz38
Отправлено: 06 Ноября, 2007 - 14:31:57
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




Стоп товарищи!
вот полностью дееспособный код, без проверок на заполнение формы:
PHP:
скопировать код в буфер обмена
  1.  
  2. if ($_REQUEST["Email"]<>""):
  3.  
  4. /*
  5. $to - адрес получателя письма
  6. $from_mail - адрес отправителя письма
  7. $from_name - имя отправителя письма
  8. $subject - тема письма
  9. $message - само сообщение в HTML-формате
  10. $file_name - путь к файлу, который надо прикрепить к письму
  11. (это может быть имя файла, выбранного в поле <input type=file name=file_name>)
  12. */
  13.  
  14. function sendMail($sendInfo, $goodInfo)
  15.  {
  16.     $header = "Mime-Version: 1.0rn";
  17.     $header .= "Content-type: text/html; charset="windows-1251"rn";
  18.     $to = "To: ".$sendInfo['to'];
  19.     $subject = "Subject: ".$sendInfo['subject'];
  20.     $header .= "From: ".$sendInfo['from_name'].", <".$sendInfo['from_mail'].">";
  21.     $body .= "Вам написал(а):<b> ".$sendInfo['from_name']."</b>;<br >";
  22.     $body .= "E-mail:<b> ".$sendInfo['from_mail']."</b>;<br >";
  23.     $body .= "Удаленный IP-адресс:<b> ".$sendInfo['ip']."</b>;<br >";
  24.     $body .= "Время написания:<b> ".$sendInfo['Sender_Time']."</b>;<br >";
  25.     $body .= "Дата написания:<b> ".$sendInfo['Sender_Date']."</b>;<br >";
  26.     $body .= "Комментарий:<b> ".$sendInfo['message']."</b>;<br >";
  27.     $body .= "Товар:<b> ".$goodInfo['p_tovar']."</b>;<br >";
  28.     $body .= "Код изделия:<b> ".$goodInfo['p_kod']."</b>;<br >";
  29.     $body .= "Артикул изделия:<b> ".$goodInfo['p_artikul']."</b>;<br >";
  30.     $body .= "Колличество:<b> ".$goodInfo['p_count']."</b>;<br >";
  31.     $body .= "Посмотреть изделие:<br >";
  32.     $body .= "<a href="http://mysite.ru/detail.php?goods=".$goodInfo['p_kod'].""><b>".$goodInfo['p_kod']."</b>&nbsp;|&nbsp;<b>".$goodInfo['p_tovar']."</b>&nbsp;|&nbsp;<b> ".$goodInfo['p_artikul']."</b>&nbsp;|&nbsp;<b> ".$goodInfo['p_count']."</b>шт.</a>";
  33.  
  34.     echo "$header, $body";
  35.  
  36.     if(mail($to, $subject, $body, $header))
  37.        echo "<b><center><span class="bodytext">СПАСИБО! Ваш заказ был успешно отправлен! </span></center></b>";
  38.     else
  39.       echo "<b><center><span class="bodytext">Извините, но Ваш заказ не может быть отправлен прямо сейчас,!</span></center></b>";
  40.  };
  41.  //далее, объявляем массивы:
  42.  $sendInfo=array(
  43.  "ip"=>"",
  44.  "to"=>"",
  45.  "from_mail"=>"",
  46.  "from_name"=>"",
  47.  "subject"=>"",
  48.  "message"=>"",
  49.  "Sender_Date"=>"",
  50.  "Sender_Time"=>""
  51.  );
  52.  $goodInfo=array(
  53.  "p_kod"=>"",
  54.  "p_tovar"=>"",
  55.  "p_artikul"=>"",
  56.  "p_count"=>""
  57.  );
  58.  //далее, заполняем массивы данными:
  59.  $sendInfo['ip'] = $REMOTE_ADDR;
  60.  $sendInfo['Sender_Time'] = date("H.i");
  61.  $sendInfo['Sender_Date'] = date("j.m.Y");
  62.  
  63.  $sendInfo['from_mail'] = $_REQUEST["Email"];
  64.  $sendInfo['from_name'] = $_REQUEST["Name"];
  65.  $sendInfo['subject'] = "Новый заказ с сайта!";
  66.  $sendInfo['to'] = "wmz38@yandex.ru";
  67.  
  68.  
  69.  
  70.  $sql = "SELECT p1.kod,p1.name,p1.article,p2.sid,p2.quantity FROM tovar as p1,cart as p2 WHERE p2.sid='".$sid."' and p2.kod=p1.kod";
  71.  $res = mysql_query($sql);
  72.  $row = mysql_fetch_object($res);   //берём запись из базы в переменную $row
  73.  $goodInfo['p_tovar'] = $row->name;
  74.  $goodInfo['p_kod'] = $row->kod;
  75.  $goodInfo['p_artikul'] = $row->article;
  76.  $goodInfo['p_count'] = $row->quantity;
  77.  
  78.  
  79.  $sendInfo['message'] = $_REQUEST["text"];
  80.  //и вызываем функцию:
  81.  sendMail($sendInfo, $goodInfo);
  82.  
  83.  
  84. else:
  85.  
  86. print "
  87. <div class="bodytext">
  88.        <b>Вам необходимо заполнить заявку приведенную ниже</b>
  89. </form>
  90. <p>
  91. <script language="JavaScript">
  92.   function check_tail()
  93.   {
  94.      if(document.forms['sms'].text.value.length>1024)
  95.      {
  96. document.getElementById("counter").innerHTML = "<font color='red'>Слишком длиное сообщение!</font>";
  97. document.forms['sms'].text.value = document.forms['sms'].text.value.substring(0,1024);
  98.         return false;
  99.      }else
  100.      {
  101.    document.getElementById("counter").innerHTML = "<strong>набрано:</strong> "
  102.          +(document.forms['sms'].text.value.length)+" символов (макс. 1024)"; return true;
  103.      }
  104.   }
  105.   </script>
  106. <form action="#" method=POST name="sms">
  107.  
  108. <table cellspacing="0" cellpadding="3" border="0">
  109. <tr>
  110. <td class="bodytext"><strong>Ваше имя:</strong>
  111. <br>
  112. <input name=Name type="text" style="border-width:1px;border-style:solid;width:300px;" /></td>
  113. </tr>
  114. <tr>
  115. <td class="bodytext"><strong>Ваш email:</strong>
  116. <br>
  117. <input name=Email type="text" style="border-width:1px;border-style:solid;width:300px;" /></td>
  118. </tr>
  119. </table>
  120. <div align="left" class="bodytext"><strong>Комментарий:</strong></div>
  121.  
  122. <textarea name=text rows="8" class="bodytext" onChange="if (!check_tail()) event.returnValue = false;" onKeyUp="if (!check_tail()) event.returnValue = false;" style="border-width:1px;border-style:solid;width:500px;"></textarea>
  123. </p>
  124.  
  125. <div align="left" class="bodytext" id="counter">
  126. </div>
  127. <div align="center" class="bodytext">
  128. <script language="JavaScript">
  129.  check_tail();
  130. </script>
  131. </div>
  132. <br>
  133. <div class="bodytext">
  134. <b>Выполнить заказ</b>
  135. <br>
  136. <input type=image name=send value=1 src="/images/send.gif" alt="">";
  137. endif;
  138. print "</form>
  139. </div>
  140.  </div>";
  141. endif;
  142.  


Собственно этот код EuGen писал.
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB