Сравнение PHP не работает .. почему? - PullRequest
0 голосов
/ 08 апреля 2010

у меня есть этот код:

    $password_introducido = sfContext::getInstance()->getUser()->getGuardUser()->setPassword($value['password_actual']);

    $password_almacenado = sfContext::getInstance()->getUser()->getGuardUser()->getPassword();

    var_dump("kfjsdlkjf");
    var_dump($password_almacenado);
    var_dump($password_almacenado);

    if($password_introducido == $password_almacenado){

        die("entrosopi");


    }

, который печатает это:

строка 'kfjsdlkjf' (длина = 9)

строка 'C9c40d11b29ac0f5bdef3be51ce61187582c3ae1' (Длина = 40)

строка 'C9c40d11b29ac0f5bdef3be51ce61187582c3ae1' (Длина = 40)

ИМХО, он должен печатать "энтросопи", но это не так. Почему?

Если я вместо этого напишу

if (! $ Password_introducido == $ Password_almacenado)

печатает "энтросопи".

1024 * Javi *

Ответы [ 3 ]

4 голосов
/ 08 апреля 2010

Вы понимаете, что выводите одну и ту же строку, верно?

Попробуйте это:

var_dump("kfjsdlkjf");
var_dump($password_introducido);
var_dump($password_almacenado);

Скажите нам, что он выводит.

Скорее всего, они НЕ равны друг другу.

0 голосов
/ 08 апреля 2010

Используйте === для точного, буквального сравнения.

Подробнее см. В этом связанном вопросе: if (0 == '%') echo "WTF, Php, почему вы не можете разумно сравнить вещи?"

0 голосов
/ 08 апреля 2010

Одной из функций (скорее всего setPassword) является шифрование / хеширование значения для безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...