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 » » Вопросы новичков » Помогите с кодом

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

1. Romarione - 25 Июля, 2016 - 00:44:22 - перейти к сообщению
Я только учусь, и хотелось бы чтобы кто нибудь помог.
Не могу понять, как сделать проверку форм по отдельности.
Например когда форма с именем заполнена а с мейлом нет, соответственно нужно
чтобы он выводил сообщение только по той форме в которой есть проблема.
Додумался только использовать значение || , но это не совсем то что нужно
вот код

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. ?php
  3.    
  4.   $name = "Вы не ввели имя или емаил";
  5.  
  6.  
  7.   if (isset($_POST["done"])) {
  8.       if ($_POST ["name"] == "" || $_POST ["Email"] == "")
  9.          echo $name."</br>";
  10.   else
  11.           header("location:index.php");
  12.   }
  13.  
  14.    $tittle = "ЧЕРНОВИК";
  15.   require "header.php";
  16.     ?>
  17.         <!DOCTYPE html>
  18.         <center>
  19.  <form name="test" action="" method="post">
  20.    <label> Имя :</label> <br>
  21.    <input type="text" name="name" placeholder"Имя" /><br>
  22.    <label> Email:</label> <br>
  23.    <input type="text" name="Email" placeholder"Email" /><br>
  24.    <label> Сообщение</label> <br>
  25.    <textarea name="message" cols="20" rows="10"> </textarea><br>
  26.    <input type="submit" name="done" value="Готово" />
  27.     </center>
  28.  
  29.  
  30.  </form>
  31.        
  32.        
  33.        
  34.         <?php
  35.         require "footer.php";
  36. ?>
  37.  
2. Fart - 25 Июля, 2016 - 05:32:26 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $name = "ошибка ИМЕНИ";
  3. $mail = "ошибка ПОЧТЫ";
  4. $error = false;
  5.  
  6. if (isset($_POST["done"]) AND  isset($_POST["name"]) AND isset($_POST["Email"]))
  7. {
  8.      if (empty($_POST["name"]))
  9.      {
  10.          echo $name."</br>";
  11.          $error = true;
  12.      }
  13.  
  14.      if (empty($_POST["email"]))
  15.      {
  16.          echo $mail."</br>";
  17.          $error = true;
  18.      }
  19.  
  20.      if(!$error)
  21.      {
  22.             //код для обработки поступивших данных, регулярные выражения на проверку заполненных форм
  23.             //манипуляция с переходами по иным ссылкам и прочее
  24.      }
  25. }
  26.  


данные POST GET нужно проверять на их наличие, если они предусмотренные твоей формой и дальнейшей проверкой. с версии PHP 7 isset($_POST[]) является обязательным.

при проверке через регулярное выражение: ввел ли пользователь данные такие какие должен видеть программист... можно дописать соответствующий код и указать также отдельно если есть ошибка для дальнейшей обработки.
3. Romarione - 25 Июля, 2016 - 13:59:40 - перейти к сообщению
Спасибо большое за ответ!
Только не совсем пойму вот это :
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  echo $name."</br>";
  3.          $error = true;
  4.  


зачем менять error на тру

и потом переворачивать это значение как ты пишешь дальше:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if(!$error)
  3.      {
  4.  


или я что то не так понимаю ?
4. Viper - 25 Июля, 2016 - 15:00:30 - перейти к сообщению
Romarione пишет:
и потом переворачивать это значение как ты пишешь дальше:
это проверка на ошибку. Всё правильно он пишет.
5. Fart - 26 Июля, 2016 - 03:38:02 - перейти к сообщению
это не константы, поэтому данная переменная будет изменяться.

$error = false; - это некий флаг машине, который говорит, что ошибок не обнаружено

$error = true; - это некий флаг о том, что есть ошибки, хотя бы 1 обнаружена

if(!$error){} - задает условие для машины, чтобы она выполняла следующие действия. в данном случае мы спрашиваем машину: если ошибок нет, то выполнить следующий код

 

Powered by ExBB FM 1.0 RC1