[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите разобраться
CJ_Junyor
Привет народ, не могу разобраться почему эта проверка не работает
Все данные заведомо ввожу такими чтобы добраться до строки

PHP
$password=trim($_POST['password']);


После этой строки стояла проверка
PHP
if($status && ((empty($password)) || (strlen($password)<6)))
, но она тоже не работала правильно...

Вот кусок кода....

PHP
$status=1;
     if(!isset(
$_POST['password']))
     {
      
$_SESSION['form']=0;
      
$status=0;
      
$str="Вы должны указать пароль!<br/>Пожалуйста вернитесь на форму смены пароля и укажите Пароль.<br/>
      <a href=\"change_pass.php\" target=\"_self\">Вернуться к форме смены пароля</a><br/>"
;
     }else
     {
       
$password=trim($_POST['password']);//Вот эта проверка даже с заведомо успешными данными не проходит!
       
if($status && ($password=="" || (strlen($password)<6)))
       {
          
$_SESSION['form']=0;
          
$status=0;
          
$str="Вы должны указать пароль!<br/>Пароль должен состоять не менее чем из 6-ти знаков. <br/>
          Пожалуйста вернитесь на форму восстановления пароля и укажите Пароль.<br/>
          <a href=\"change_pass.php\" target=\"_self\">Вернуться к форме смены пароля</a><br/>"
;
       }else


Короче по каким-то не объяснимым причинам проверка на длину пароля и непустоту не проходит, даже когда должна....

Не знаю че делать, подскажите где я туплю...



Спустя 26 минут, 5 секунд (29.09.2009 - 17:18) Gabriel написал(а):
PHP
if($status && ((empty($password)) || (strlen($password)<6)))

жачем такое количество скобок?
PHP
if($status && empty( $password ) || strlen( $password ) < 6 )

Спустя 1 минута, 11 секунд (29.09.2009 - 17:19) Michael написал(а):
Цитата
Вот эта проверка даже с заведомо успешными данными не проходит!

Да? А у меня почему то проходит.
PHP
$status=1;
$password='yrittttt';
 if(
$status && ($password=="" || (strlen($password)<6)))
 {
echo 
'1'// не проходит
}else{
 echo 
'2'// проходит
}

Выводит: 2.

Спустя 5 минут, 4 секунды (29.09.2009 - 17:25) CJ_Junyor написал(а):
Gabriel
Цитата
if($status && empty( $password ) || strlen( $password ) < 6 )


В этой конструкции проверка empty - полностью игнорируется ... в php на сколько я понял, как в c++ если первое условие ложь, то второе даже не проверяется при логическом И?

Ну так это не объясняет почему этот цикл проверок игнорируется,

- первое услови $status - на момент проверки равен 1 => истина
- второе empty - не пуст (таким передаю)
- третье должно попросту не играть роли, т.к. второе уже истина

Я пока только понял что empty($password) - не работает как надо, но пойму почему, толи из-за обрезания trim()?

Спустя 6 минут, 18 секунд (29.09.2009 - 17:31) CJ_Junyor написал(а):
Michael
Так что ты думаешь со скриптом?

Может че-то с серваком?

Передаю пустую строку и проверка полностью на игноре...


Спустя 6 минут, 18 секунд (29.09.2009 - 17:37) Michael написал(а):
Цитата (CJ_Junyor @ 29.09.2009 - 14:31)
Передаю пустую строку и проверка полностью на игноре...

Проверь что пришло в $_POST.



Спустя 7 минут, 28 секунд (29.09.2009 - 17:45) CJ_Junyor написал(а):
Цитата
Проверь что пришло в $_POST.


Проверил - данные доходят в правильном виде (т.е. если пустое поле - то пусто)

но проверка все равно считает что там не пусто или чето еще, не могу разобраться...

Может это из-за функции trim() до условия проверки?

Спустя 14 минут, 40 секунд (29.09.2009 - 17:59) glock18 написал(а):
Цитата
if($status && empty( $password ) || strlen( $password ) < 6 )


переведи слово empty с английского на русский.

Спустя 5 минут, 29 секунд (29.09.2009 - 18:05) twin написал(а):
Кодировка какая?

Спустя 6 минут, 10 секунд (29.09.2009 - 18:11) CJ_Junyor написал(а):
Цитата
переведи слово empty с английского на русский.


В каком смысле, функция же на анг.?

Спустя 3 минуты, 35 секунд (29.09.2009 - 18:15) CJ_Junyor написал(а):
twin
Кодировка чего, входящих данных?

Я полагаю, что пустая переменная в любой кодировке будет пустой.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.