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 :: if empty

 PHP.SU

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


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

> Описание: почему-то не срабатывает if empty
Wooorker
Отправлено: 11 Ноября, 2013 - 21:09:17
Post Id



Гость


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


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




Простите, господа, за неумный вопрос.
Почему в этом коде
PHP:
скопировать код в буфер обмена
  1. <?
  2. if (empty($userName)){
  3.     print '<form>Пожалуйста введите ваше имя:
  4.    <input type="text" name="userName"><br>
  5.    <input type="submit"></form>';
  6.     } else {
  7.         print "<h3>Привет, $userName!</h3>";
  8.     }
  9. ?>

После нажатия кнопки не появляется "Привет, юзернэйм!" при заполненном поле userName?
 
 Top
caballero
Отправлено: 11 Ноября, 2013 - 21:22:53
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




а с чего бы ему появлятся?

замени например на
if (strlen($userName) == 0){


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
OrmaJever Модератор
Отправлено: 11 Ноября, 2013 - 21:36:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




может потому что переменой $userName вообще не существует?
Я бы на вашем месте посмотрел на $_GET['userName'].


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DelphinPRO
Отправлено: 11 Ноября, 2013 - 21:42:30
Post Id



Активный участник


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


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




может $_GET['userName'] ?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Wooorker
Отправлено: 12 Ноября, 2013 - 21:03:01
Post Id



Гость


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


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




DelphinPRO пишет:
может $_GET['userName'] ?

Да, спасибо!
Как впрочем и $_REQUEST
 
 Top
Wooorker
Отправлено: 15 Ноября, 2013 - 21:39:59
Post Id



Гость


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


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




Задам в этой же теме ещё похожий вопрос.

PHP:
скопировать код в буфер обмена
  1.     global $var1;
  2.     $var1 = $_REQUEST['var1'];
  3.     if (empty($var1)){
  4.     }
  5.  


$var1 принимает значения от 0 до 5
Условие нормально срабатывает при первом запуске, когда $var1 не присвоено никакое значение.
И при значениях >0 тоже правильно срабатывает.
А когда передаёшь значение =0, то показывает ту же картинку, что и при первом запуске.
Почему для php значение =0 равнозначно empty? Как правильно проверку в этом случае проводить, чтобы и случай первого запуска обработать, и нулевое значение?
 
 Top
Wooorker
Отправлено: 19 Ноября, 2013 - 20:18:11
Post Id



Гость


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


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




Никто не знает как разделить проверку empty и == 0 ?
Вернее даже так:
- при НЕ первом запуске
PHP:
скопировать код в буфер обмена
  1. <input type = "text" name = "var1" value="0">

передает

указанное значение скрипту.
- но и при ПЕРВОМ запуске передаётся в $var1 = 0

т. е. непонятно как определять первый ли это запуск, или в поле ввели значение = 0

Изменения типа
PHP:
скопировать код в буфер обмена
  1. <input type = "text" name = "var1" value="">
тоже ничего не дают.

(Отредактировано автором: 19 Ноября, 2013 - 20:24:23)

 
 Top
teddy
Отправлено: 19 Ноября, 2013 - 20:46:45
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


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




Wooorker пишет:
Никто не знает как разделить проверку empty и == 0 ?

PHP:
скопировать код в буфер обмена
  1. if($var1 == 0){
  2. //значение равно нулю
  3. }elseif(empty($var1)){
  4. //пустое значение
  5. }

(Отредактировано автором: 19 Ноября, 2013 - 20:47:27)

 
 Top
caballero
Отправлено: 19 Ноября, 2013 - 20:59:17
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
Почему для php значение =0 равнозначно empty? Как правильно проверку в этом случае проводить, чтобы и случай первого запуска обработать, и нулевое значение?

строгое сравнение
$var1 === 0
или
$var1 === "0"
в зависимости как оно приходит


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 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