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
Форумы портала PHP.SU :: Версия для печати :: Скрипт обратной связи
Форумы портала PHP.SU » » Вопросы новичков » Скрипт обратной связи

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

1. s3ga - 25 Июля, 2013 - 10:40:18 - перейти к сообщению
Здраствуйте уважаемые форумчане, прошу помочь найти ошибку в скрипте обратной связи
Форма обратной связи
CODE (html):
скопировать код в буфер обмена
  1.         <form class="form" action="send.php" method="post">
  2.     <p class="name">
  3.         <input  type="text" name="name" placeholder="Ваше имя,фамилия" required/>
  4.     </p>
  5.     <p class="email">
  6.         <input  type="text" name="email" placeholder="Ваша электронная почта" required/>
  7.     </p>
  8.     <p class="text">
  9.         <textarea name="body" placeholder="Текст сообщения" required></textarea>
  10.     </p>
  11.     <p class="submit">
  12.         <input type="submit" id="submit" value="Отправить" />
  13.     </p>
  14. </form>

СКрипт
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   if (isset($_POST['name'])) {$name = $_POST['name'];}
  3.   if (isset($_POST['email'])) {$email = $_POST['email'];}
  4.   if (isset($_POST['body'])) {$body = $_POST['body'];}
  5.   $address = "wtf.S3Ga@gmail.com";
  6.   $sub="Письмо с сайта";
  7.   $mes = "Имя: $name \nE-mail: $email \nТема: $sub \nТекст: $body";
  8.   $send = mail ($address,,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
  9.   if ($send == 'true')
  10.   {
  11.   echo "Сообщение отправлено";
  12.   }
  13.   else
  14.   {
  15.   echo "Сообщение не отправлено";
  16.   }
  17. ?>
2. Ch_chov - 25 Июля, 2013 - 10:52:23 - перейти к сообщению
s3ga пишет:
  if ($send == 'true')

Возьмите какой нибудь готовый скрипт. Их в сети полно. Хотя бы для примера.
3. soffrick - 25 Июля, 2013 - 10:56:46 - перейти к сообщению
s3ga пишет:
прошу помочь найти ошибку в скрипте

ты забыл unset сделать
PHP:
скопировать код в буфер обмена
  1.  if (isset($_POST['name'])) {$name = $_POST['name']; if ($name == '') unset($name)}
  2.   if (isset($_POST['email'])) {$email = $_POST['email']; if ($email == '') unset($email)}
  3.   if (isset($_POST['body'])) {$body = $_POST['body']; if ($body == '') unset($body)}
4. LIME - 25 Июля, 2013 - 11:04:42 - перейти к сообщению
soffrick пишет:
ты забыл unset сделать
это шутка?Ch_chov
s3ga пишет:
if ($send == 'true')
как ни прискорбно такие условия работают)))

(Добавление)
из-за приведения строкового типа к булевому
5. teddy - 25 Июля, 2013 - 11:10:59 - перейти к сообщению
PHP
Спойлер (Отобразить)

HTML
Спойлер (Отобразить)
6. LIME - 25 Июля, 2013 - 11:16:23 - перейти к сообщению
teddy потести свой скрипт...посмотри что пришло
отправь пустые поля...
7. teddy - 25 Июля, 2013 - 11:19:25 - перейти к сообщению
LIME пишет:
отправь пустые поля...

Не отправляются ) я же проверил через if и сделал trim, тоесть пробельные символы в начале(даже если только они и их много) и в конце обрежутся, следовательно если одно из полей пустое, то в условии будет false и сообщение не отправится и пользователь получит сообщение об ошибке Улыбка
8. LIME - 25 Июля, 2013 - 11:22:27 - перейти к сообщению
teddy пишет:
"$body"
teddy пишет:
$mes = "Имя: $name \nE-mail: $email \nТема: $sub \nТекст: $body";
9. teddy - 25 Июля, 2013 - 11:24:55 - перейти к сообщению
LIME
Я понял о чем ты ) Но они как бы лежат в одной переменной, поэтому будет проверяться именно то, что пришло $_POST-ом... Запусти скрипт, сам убедишься Улыбка
10. LIME - 25 Июля, 2013 - 11:33:25 - перейти к сообщению
что-то ты не понял о чем я
отправь в теле среднюю статью из нета
11. teddy - 25 Июля, 2013 - 11:42:51 - перейти к сообщению
LIME пишет:
teddy потести свой скрипт...посмотри что пришло
отправь пустые поля...

Ну ты написал что бы я протестил скрипт отправив пустые поля, результат был таким: сообщение не отправилось из за того, что не были заполнены все поля...

А по поводу средней статьи, не очень понял честно говоря как статья связана с пустыми полями. Статья успешно отправилось(при условии что все поля были заполнены)

P.S: в пример добавил ту кодировку, которую использует ТС
12. s3ga - 25 Июля, 2013 - 12:38:18 - перейти к сообщению
У меня скрипт по прежнему отказывается работать, жму сабмит, появляется пустое окно send.php
13. teddy - 25 Июля, 2013 - 12:41:36 - перейти к сообщению
s3ga пишет:
У меня скрипт по прежнему отказывается работать, жму сабмит, появляется пустое окно send.php


Скопируйте себе то что я написал выше(см.Спойлер). Код работает, если денвер, то см. папку Z:\tmp\!sendmail

Если снова не работает, то значит вы неверно копируете. Сначала скопируйте и вставьте в редактор то, что находится в спойлере PHP, а после него то, что в спойлере HTML
(Добавление)
А лучше покажите, как выглядит ваш код в редакторе дабы ускорить процесс
14. s3ga - 25 Июля, 2013 - 12:58:26 - перейти к сообщению
Так,уже что-то, сейчас по нажатии сабмит появляется "сообщение успешно отправлено".Вот только письма не вижу
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if(isset($_POST['submit']))
  3. {
  4.      $name = trim($_POST['name']);
  5.      $email = trim($_POST['email']);
  6.      $body = trim($_POST['body']);  
  7.      $address = "RN4HBM@mail.ru";
  8.      $sub = "Письмо с сайта";
  9.      $mes = "Имя: $name \nE-mail: $email \nТема: $sub \nТекст: $body";
  10.      $header = "Content-type:text/plain; charset = windows-1251\r\n";
  11.          if($name and $email and $body)
  12.             {
  13.                mail ($address,$mes,"$body", $header);
  14.                echo "Сообщение успешно отправлено";
  15.             }
  16.         else
  17.         {
  18.              echo "Заполните все поля";
  19.         }
  20. }
  21. ?>

CODE (html):
скопировать код в буфер обмена
  1. <form class="form" action="" method="post">
  2.  
  3.     <p class="name">
  4.  
  5.         <input  type="text" name="name" placeholder="Ваше имя,фамилия" required/>
  6.  
  7.     </p>
  8.  
  9.     <p class="email">
  10.  
  11.         <input  type="text" name="email" placeholder="Ваша электронная почта" required/>
  12.  
  13.     </p>
  14.  
  15.     <p class="text">
  16.  
  17.         <textarea name="body" placeholder="Текст сообщения" required></textarea>
  18.  
  19.     </p>
  20.  
  21.     <p class="submit">
  22.  
  23.         <input type="submit" id="submit" name="submit" value="Отправить" />    </p>
  24.  
  25. </form>
15. esterio - 25 Июля, 2013 - 12:58:58 - перейти к сообщению

LIME пишет:
это шутка?

Да ето же от Попова. Только надо было оформить как оффтоп, а то ТС подумает что так и надо делать

(Добавление)
s3ga
Где тестируем? на денвере? на денвере письма не отправляються! там стоит заглушка и все письма сохраняються в папке tmp

 

Powered by ExBB FM 1.0 RC1