我有这段代码:
$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");
}
打印出来:
恕我直言,它应该打印“entrosopi”,但它没有。为什么呢?string'kfjsdlkjf'(length = 9)
的字符串 'c9c40d11b29ac0f5bdef3be51ce61187582c3ae1' (长度= 40)
的字符串 'c9c40d11b29ac0f5bdef3be51ce61187582c3ae1' (长度= 40)
如果我改为写
if(!$ password_introducido == $ password_almacenado)
打印“entrosopi”。
哈维
答案 0 :(得分:4)
你意识到你正在输出相同的字符串吗?
试试这个:
var_dump("kfjsdlkjf");
var_dump($password_introducido);
var_dump($password_almacenado);
告诉我们它的输出结果。
他们很可能彼此不相等。
答案 1 :(得分:0)
其中一个功能(很可能是setPassword)是加密/散列安全值。
答案 2 :(得分:0)
使用===
进行精确的文字比较。
有关详细信息,请参阅此相关问题:if(0 == '%') echo "WTF, Php, why can't you compare things sanely?"