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. 20167 - 05 Июля, 2011 - 15:58:15 - перейти к сообщению
Всем привет!
Помогите с проверкой ввода данных методом POST
Сразу говорю скрипт проверки брал из формы регистрации!
Она работает но не выводит ошибки , на пример если я не в вел логин она просто обновит страницу ни каких ошибок вида "не заполнено поле "Логин" не выводит, помогите исправить.

PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3. include 'config/config.php';
  4.  
  5. if($_POST['add_ded'] == "submit") {
  6.  
  7.   if ( isset( $_SESSION['add_dedicate'] ) ) {
  8.   echo $_SESSION['add_dedicate']['error'];
  9.   $ip      = htmlspecialchars ( $_SESSION['add_dedicate']['ip'] );
  10.   $login     = htmlspecialchars ( $_SESSION['add_dedicate']['login'] );
  11.   $pass     = htmlspecialchars ( $_SESSION['add_dedicate']['pass'] );
  12.   $country     = htmlspecialchars ( $_SESSION['add_dedicate']['country'] );
  13.   $internet_v       = htmlspecialchars ( $_SESSION['add_dedicate']['internet_v'] );
  14.   $internet_i       = htmlspecialchars ( $_SESSION['add_dedicate']['internet_i'] );
  15.   $trafic_v        = htmlspecialchars ( $_SESSION['add_dedicate']['trafic_v'] );
  16.   $trafic_i        = htmlspecialchars ( $_SESSION['add_dedicate']['trafic_i'] );
  17.   $system        = htmlspecialchars ( $_SESSION['add_dedicate']['system'] );
  18.   $price_dol        = htmlspecialchars ( $_SESSION['add_dedicate']['price_dol'] );
  19.   unset( $_SESSION['add_dedicate'] );
  20. } else {
  21.   $ip      = '';
  22.   $login         = '';
  23.   $pass   = '';
  24.   $country     = '';
  25.   $internet_v       = '';
  26.   $internet_i       = '';
  27.   $trafic_v        = '';
  28.   $trafic_i        = '';
  29.   $system        = '';
  30.   $price_dol        = '';
  31.   }
  32.  
  33.  
  34. $ip      = substr( $_POST['ip'], 0, 50 );
  35. $login     = substr( $_POST['login'], 0, 20 );
  36. $pass     = substr( $_POST['pass'], 0, 20 );
  37. $country     = substr( $_POST['country'], 0, 20 );
  38. $internet_v     = substr( $_POST['internet_v'], 0, 20 );
  39. $internet_i     = substr( $_POST['internet_i'], 0, 20 );
  40. $trafic_v     = substr( $_POST['trafic_v'], 0, 20 );
  41. $trafic_i     = substr( $_POST['trafic_i'], 0, 20 );
  42. $system     = substr( $_POST['system'], 0, 20 );
  43. $price_dol     = substr( $_POST['price_dol'], 0, 20 );
  44.  
  45. $error = '';
  46. if ( empty( $ip ) ) $error =  $error.'не заполнено поле "IP"</li>'."\n";
  47. if ( empty( $login ) ) $error = $error.'<li class="error_text">не заполнено поле "Логин"</li>'."\n";
  48. if ( empty( $pass ) ) $error = $error.'<li class="error_text">не заполнено поле "Пароль"</li>'."\n";
  49. if ( empty( $country ) ) $error = $error.'<li class="error_text">не заполнено поле "Страна"</li>'."\n";
  50. if ( empty( $internet_v ) ) $error = $error.'<li class="error_text">не заполнено поле "Входящая скорость интернета"</li>'."\n";
  51. if ( empty( $internet_i ) ) $error = $error.'<li class="error_text">не заполнено поле "Исходящая скорость интернета "</li>'."\n";
  52. if ( empty( $trafic_v ) ) $error = $error.'<li class="error_text">не выбрано поле величина</li>'."\n";
  53. if ( empty( $trafic_i ) ) $error = $error.'<li class="error_text">не выбрано поле величина</li>'."\n";
  54. if ( empty( $system ) ) $error = $error.'<li class="error_text">не заполнено поле "Система"</li>'."\n";
  55. if ( empty( $price_dol ) ) $error = $error.'<li class="error_text">не заполнено поле "Цена"</li>'."\n";
  56.  
  57.  
  58.   if ( !empty( $error ) ) {
  59.   $_SESSION['add_dedicate'] = array();
  60.   $_SESSION['add_dedicate']['error'] = '<strong>При заполнении формы были допущены ошибки:</strong>';
  61.   $_SESSION['add_dedicate']['ip'] = $name;
  62.   $_SESSION['add_dedicate']['login'] = $$login;
  63.   $_SESSION['add_dedicate']['pass'] = $pass;
  64.   $_SESSION['add_dedicate']['country'] = $country;
  65.   $_SESSION['add_dedicate']['internet_v'] = $internet_v;
  66.   $_SESSION['add_dedicate']['internet_i'] = $internet_i;
  67.   $_SESSION['add_dedicate']['trafic_v'] = $trafic_v;
  68.   $_SESSION['add_dedicate']['trafic_i'] = $trafic_i;
  69.   $_SESSION['add_dedicate']['system'] = $system;
  70.   $_SESSION['add_dedicate']['price_dol'] = $price_dol;
  71.   header( 'Location: add_new.php' );
  72.   die();
  73. }
  74.  
  75.  
  76. mysql_query ("INSERT INTO all_ded (ip, login, pass, country, internet_v, internet_i, trafic_v, trafic_i, system, price_dol) VALUES ('$ip', '$login', '$pass', '$country', '$internet_v', '$internet_i', '$trafic_v', '$trafic_i', '$system', '$price_dol')");
  77.  
  78. }
  79.  
  80. $add = <<<HTML
  81. <form action="" method="post">
  82.  
  83. IP: <input type="text" name="ip"><br>
  84. Логин: <input type="text" name="login"><br>
  85. Пароль: <input type="text" name="pass"><br>
  86. Страна <input type="text" name="country"><br>
  87. Интернет: <input type="text" name="internet_v">
  88. <select name="trafic_v">
  89. <option value="Кб/с">Кб/с</option>
  90. <option value="Мб/с">Мб/с</option>
  91. </select>
  92. <input type="text" name="internet_i">
  93. <select name="trafic_i">
  94. <option value="Кб/с">Кб/с</option>
  95. <option value="Мб/с">Мб/с</option>
  96. </select>
  97. <br>
  98. Система: <input type="text" name="system"><br>
  99. Цена в долларах: <input type="text" name="price_dol"> <br>
  100. <input onclick="submit();" name="image" value="Добавить" alt="Добавить" type="submit"/><br>
  101. <input name="add_ded" type="hidden" id="add_ded" value="submit" /></td>
  102. </form>
  103. HTML;
  104. echo $add;
2. vlados - 05 Июля, 2011 - 16:01:49 - перейти к сообщению
Цитата:
if ( empty( $ip )==TRUE ){ echo $error.'не заполнено поле "IP"</li>'."\n";
3. PATCH - 05 Июля, 2011 - 16:02:26 - перейти к сообщению
CODE (html):
скопировать код в буфер обмена
  1. if(empty($login))
  2.   {exit("<script type='text/javascript'>alert('Вы не заполнели поле логин)");}

(Добавление)
vlados пишет:
if ( empty( $ip )==TRUE ){ echo $error.'не заполнено поле "IP"</li>'."\n";

зачем тру? ты прочитай условие по человечески) empty($ip) - проверяет пустоту переменой) если она не пустая то условие if и не сработает) и зачем переменая $error если причина ошибки в следующем) и скрипт надо останавливать т.е вместо echo (exit) т.к она просто выведит что не заполнено поле и продолжет скрипт и добавит ифну без $ip. еще б неплохо проверит переменую на слеши, и sql инъекции в водимых полях а так же обрезать лишние пробелы т.е

CODE (htmlphp):
скопировать код в буфер обмена
  1. $login= mysql_escape_string($login);
  2.  
  3.  
  4. $login= trim($login);$login= stripslashes($login);
4. vlados - 05 Июля, 2011 - 16:07:58 - перейти к сообщению
PATCH не заметил.
5. 20167 - 05 Июля, 2011 - 16:13:55 - перейти к сообщению
vlados пишет:
if ( empty( $ip )==TRUE ){ echo $error.'не заполнено поле "IP"</li>'."\n";

Ничего не изменилось(

PATCH пишет:
if(empty($login))
{exit("<script type='text/javascript'>alert('Вы не заполнили поле логин)");}


При нажатии кнопки отправить, просто пустая страница(
Огорчение
6. PATCH - 05 Июля, 2011 - 16:15:52 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. {exit("<script type='text/javascript'>alert('Вы не заполнели все поля') </script>");}
моя оплошность) п.с в яваскрипте строгий синтаксис если его нарушить то он его и не выведит по сути у тебя сча выскачит сообщение и пустая страница можеш просто обновить страничку

я делаю по сути так
PHP:
скопировать код в буфер обмена
  1. {exit("<script type='text/javascript'>alert('Вы не заполнели все поля') </script>"."<html><head><meta http-equiv='refresh' content='0; URL=на какой файл переадресовывать'></head></html>");}
7. 20167 - 05 Июля, 2011 - 16:25:58 - перейти к сообщению
Пасибо большое) только если у тебя есть грамматическая ошибка, мало ли на сайте где используешь) "заполнели" правильно "заполнили"

Жаль пасибку поставить нельзя(
8. PATCH - 05 Июля, 2011 - 16:27:46 - перейти к сообщению
нз) насчет , то что я не грамотный) я знаю))))пошел исправлятЬ))

 

Powered by ExBB FM 1.0 RC1