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. alezander - 08 Января, 2017 - 13:00:33 - перейти к сообщению
проблема что при нажатии кнопки добавить добавляется строка даже если она пустая.

index.php
Спойлер (Отобразить)


add.php
Спойлер (Отобразить)
2. Строитель - 08 Января, 2017 - 14:26:44 - перейти к сообщению
alezander, строку №40 перенесите за пределы пхп кода вниз.
CODE (html):
скопировать код в буфер обмена
  1. <form method="POST" action="/add.php">
3. alezander - 08 Января, 2017 - 14:50:55 - перейти к сообщению
Он и так находиться за приделами php если убрать не будет срабатывать.
CODE (htmlphp):
скопировать код в буфер обмена
  1. <form method="POST" action="/add.php">  
  2.     <?php
  3.    if(isset($_POST['add']))
  4.    {
  5.         $errors = array();
  6.         if( $_POST['username'] == '')
  7.         {
  8.                 $erorrs[] = 'Ведите Имя пользователя!';
  9.         }
  10.         if( $_POST['password'] == '')
  11.         {
  12.                 $erorrs[] = 'Ведите Имя пользователя!';
  13.         }
  14.         if( $_POST['class'] == '')
  15.         {
  16.                 $erorrs[] = 'Ведите Имя пользователя!';
  17.         }
  18.         if( $_POST['type'] == '')
  19.         {
  20.                 $erorrs[] = 'Ведите Имя пользователя!';
  21.         }
  22.         if( $_POST['cratedate'] == '0000-00-00')
  23.         {
  24.                 $erorrs[] = 'Ведите Имя пользователя!';
  25.         }
  26.         if (empty($errors))
  27.         {
  28.        // include "add.php";
  29.         }
  30.         else
  31.         {
  32.                 echo $errors['0'];
  33.         }
  34.    }
  35.    ?>
  36.                         <tr>
  37.                                 <tr>
  38.                                 <th>#</th>
  39.                                 <th><input type="text" name="username" value = "<?php echo $_POST['username']?>"/><br/></th>
  40.                                 <th><input type="text" name="password" value = "<?php echo $_POST['password']?>"/><br/></th>
  41.                                 <th><input type="number" name="class" step="0.01" value = "<?php echo $_POST['class']?>"/><br/></th>
  42.                                 <th><input type="number" name="type" step="0.01" value = "<?php echo $_POST['type']?>"/><br/></th>
  43.                                 <th><input type="date" name="cratedate" value = "<?php echo $_POST['cratedate']?>"/><br/></th>
  44.                                 <th><input type="submit" name= "add" value="Добавить"/></th>
  45.                         </tr>
  46.         </form>
4. Строитель - 08 Января, 2017 - 14:55:17 - перейти к сообщению
alezander, вы не правильно меня поняли, или я не верно выразился. Вам нужно блок проверок на ошибки вынести за пределы html-формы
PHP:
скопировать код в буфер обмена
  1.     <?PHP
  2.    if(isset($_POST['add']))
  3.    {
  4.         $errors = array();
  5.         if( $_POST['username'] == '')
  6.         {
  7.                 $erorrs[] = 'Ведите Имя пользователя!';
  8.         }
  9.         if( $_POST['password'] == '')
  10.         {
  11.                 $erorrs[] = 'Ведите Имя пользователя!';
  12.         }
  13.         if( $_POST['class'] == '')
  14.         {
  15.                 $erorrs[] = 'Ведите Имя пользователя!';
  16.         }
  17.         if( $_POST['type'] == '')
  18.         {
  19.                 $erorrs[] = 'Ведите Имя пользователя!';
  20.         }
  21.         if( $_POST['cratedate'] == '0000-00-00')
  22.         {
  23.                 $erorrs[] = 'Ведите Имя пользователя!';
  24.         }
  25.         if (empty($errors))
  26.         {
  27.        // include "add.php";
  28.         }
  29.         else
  30.         {
  31.                 echo $errors['0'];
  32.         }
  33.    }
  34.    ?>
  35.  
  36. <form action="">

(Добавление)
И ещё вместо этого echo $errors['0']; напишите так
PHP:
скопировать код в буфер обмена
  1. echo join('<br />', $errors);
5. alezander - 08 Января, 2017 - 15:07:59 - перейти к сообщению
эффект тот-же добавляет строки не обращая внимания на проверки.

Спойлер (Отобразить)
6. Строитель - 08 Января, 2017 - 15:14:06 - перейти к сообщению
alezander, сейчас за свой комп перейду, посмотрю на локалке и отпишусь.
7. alezander - 08 Января, 2017 - 15:48:31 - перейти к сообщению
Спасибо. Если так будет быстрее вот все что написано.
8. Строитель - 08 Января, 2017 - 16:41:07 - перейти к сообщению
alezander, ошибка у вас была в названии переменной errors . Код я взял из вашего первого поста, немного его изменил. По хорошему надо всё из суперглобального массива POST фильтровать и сохранять в переменные, и далее работать только с переменными. Пример ниже это и демонстрирует
Спойлер (Отобразить)
9. alezander - 08 Января, 2017 - 16:55:19 - перейти к сообщению
Я примерно так пробовал в сам начале потом пошел по пути значения из пост но не фильтруя. но эффект и тогда и сейчас и с последним кодом в том что ошибки все равно не выскакивают а просто добавляет.
10. Строитель - 08 Января, 2017 - 17:08:44 - перейти к сообщению
alezander, тогда скопируйте мой код целиком, он рабочий.
11. alezander - 08 Января, 2017 - 18:37:25 - перейти к сообщению
все полностью скопировал эфект тот - же
12. Строитель - 08 Января, 2017 - 18:40:40 - перейти к сообщению
alezander пишет:
все полностью скопировал эфект тот - же
Больше не знаю, чем вам помочь, т.к. на локалке код тестировал, он работает без проблем.
(Добавление)
Включайте показ всех ошибок, только так вы что-то у себя сможете найти.
13. alezander - 08 Января, 2017 - 18:45:39 - перейти к сообщению
Строитель пишет:
alezander пишет:
все полностью скопировал эфект тот - же
Больше не знаю, чем вам помочь, т.к. на локалке код тестировал, он работает без проблем.
(Добавление)
Включайте показ всех ошибок, только так вы что-то у себя сможете найти.


Спасибо буду думать.
14. Quest - 09 Января, 2017 - 09:58:38 - перейти к сообщению
$erorrs

$errors

 

Powered by ExBB FM 1.0 RC1