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 :: не срабатывает проверка ошибок после нажатия кнопки

 PHP.SU

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


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

> Без описания
alezander
Отправлено: 08 Января, 2017 - 13:00:33
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017  


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




проблема что при нажатии кнопки добавить добавляется строка даже если она пустая.

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


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

Прикреплено изображение (Нажмите для увеличения)
1.jpg

(Отредактировано автором: 08 Января, 2017 - 13:07:44)

 
 Top
Строитель Модератор
Отправлено: 08 Января, 2017 - 14:26:44
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




alezander, строку №40 перенесите за пределы пхп кода вниз.
CODE (html):
скопировать код в буфер обмена
  1. <form method="POST" action="/add.php">
 
 Top
alezander
Отправлено: 08 Января, 2017 - 14:50:55
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017  


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




Он и так находиться за приделами 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>
 
 Top
Строитель Модератор
Отправлено: 08 Января, 2017 - 14:55:17
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




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']; напишите так

(Отредактировано автором: 08 Января, 2017 - 14:56:20)

 
 Top
alezander
Отправлено: 08 Января, 2017 - 15:07:59
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017  


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




эффект тот-же добавляет строки не обращая внимания на проверки.

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

(Отредактировано автором: 08 Января, 2017 - 15:09:37)

 
 Top
Строитель Модератор
Отправлено: 08 Января, 2017 - 15:14:06
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




alezander, сейчас за свой комп перейду, посмотрю на локалке и отпишусь.
 
 Top
alezander
Отправлено: 08 Января, 2017 - 15:48:31
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017  


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




Спасибо. Если так будет быстрее вот все что написано.
Скачать файл: base.zip
Скачан раз: 44
 
 Top
Строитель Модератор
Отправлено: 08 Января, 2017 - 16:41:07
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




alezander, ошибка у вас была в названии переменной errors . Код я взял из вашего первого поста, немного его изменил. По хорошему надо всё из суперглобального массива POST фильтровать и сохранять в переменные, и далее работать только с переменными. Пример ниже это и демонстрирует
Спойлер (Отобразить)
 
 Top
alezander
Отправлено: 08 Января, 2017 - 16:55:19
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017  


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




Я примерно так пробовал в сам начале потом пошел по пути значения из пост но не фильтруя. но эффект и тогда и сейчас и с последним кодом в том что ошибки все равно не выскакивают а просто добавляет.
 
 Top
Строитель Модератор
Отправлено: 08 Января, 2017 - 17:08:44
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




alezander, тогда скопируйте мой код целиком, он рабочий.
 
 Top
alezander
Отправлено: 08 Января, 2017 - 18:37:25
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017  


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




все полностью скопировал эфект тот - же
 
 Top
Строитель Модератор
Отправлено: 08 Января, 2017 - 18:40:40
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




alezander пишет:
все полностью скопировал эфект тот - же
Больше не знаю, чем вам помочь, т.к. на локалке код тестировал, он работает без проблем.
(Добавление)
Включайте показ всех ошибок, только так вы что-то у себя сможете найти.
 
 Top
alezander
Отправлено: 08 Января, 2017 - 18:45:39
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017  


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




Строитель пишет:
alezander пишет:
все полностью скопировал эфект тот - же
Больше не знаю, чем вам помочь, т.к. на локалке код тестировал, он работает без проблем.
(Добавление)
Включайте показ всех ошибок, только так вы что-то у себя сможете найти.


Спасибо буду думать.
 
 Top
Quest
Отправлено: 09 Января, 2017 - 09:58:38
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Янв. 2011  


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




$erorrs

$errors
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB