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. krutilov228 - 10 Июля, 2014 - 19:55:41 - перейти к сообщению
Приветствую. Есть одна форма с обработчиком. В обработчике проверяются данные из формы, в моем случае количество введенных символов. Если количество символов меньше двух обработчик должен ругнутья, что он собственно и делает. Если количество символов больше двух, то соответсвенно выоводится сообщение о том, что все хорошо. Собственно проблема в том что оно выводится при любом раскладе, а должно выводиться только когда количество символов превышает 2. Помогите понять где косяк.

Ниже привожу код формы и обработчика

Форма:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <form action="get.php" method="post">
  3.         <p>Имя:         <input name="name" type="text" size="20">        <p><input name='sub_com' type='submit' value='Отправить'></p>
  4. </form>
  5.  


Обработчик:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $name = $_POST['name'];
  4.  
  5. if ($name != "")
  6. // Если существуют проверяем...
  7.         {
  8.            if ((strlen($name) >= 2) and (strlen($name) <= 25))
  9.            {
  10.                    $name = stripslashes($name);
  11.                    $name = html_entity_decode($name);
  12.                    $name = strip_tags($name);
  13.            }
  14.            else
  15.            {
  16.                    echo "Вы ввели некорректные данные в поле Имя<br />";
  17.            }  
  18.  
  19.         }
  20.         // Если не существуют выводим сообщение...
  21.         else
  22.         {
  23.                 echo "Пожалуйста заполните все поля !";
  24.         }
  25.  
  26.         if ($name) {
  27.                 echo "Все круто";
  28.         }
  29.  
  30. ?>
  31.  
2. Viper - 10 Июля, 2014 - 20:58:21 - перейти к сообщению
3. krutilov228 - 10 Июля, 2014 - 21:05:15 - перейти к сообщению
Viper пишет:


так перестает работать проверка
4. Sail - 11 Июля, 2014 - 08:46:16 - перейти к сообщению
Для проверки вхождения в интервал от 2 до 25 надо использовать, конечно-же 'and' Улыбка
Возможно, дело в кодировке строки... не один байт на символ.
Попробуйте для начала проверку начать не с 2, а с 10.
А затем - к mb_* функциям...
5. DelphinPRO - 11 Июля, 2014 - 09:14:03 - перейти к сообщению
Sail пишет:
А затем - к mb_* функциям...

сразу. Если имена кириллические и кодировка utf - следует использовать mb_* функции обработки строк.
(Добавление)

Блин, когда же в php можно будет писать так

if (2 <= strlen($name) <= 25)

Улыбка

 

Powered by ExBB FM 1.0 RC1