两个PHP数组值显示相同但显示不同

时间:2015-01-30 05:16:24

标签: php arrays

我有以下代码:

$userPass = $invItem['cfields'][8]['pw']; //Value provided from a form
$sqlPass = $row['user_pass'];     //Value from SQL
echo "Pass: <pre>", $userPass, "</pre><br />";
echo "SQL Pass: <pre>", $sqlPass, "</pre><br />";

userPass是登录表单中的值,这是一个嵌套数组。有多个不同大小的数组彼此嵌套。 sqlPass是包含存储密码的SQL查询的结果,我试图对其进行身份验证。

我测试的场景使用带符号的密码,&#34; p @ $ S&#34;例如。

如果没有htmlspecialchars(),两个密码看起来是一样的,但是对于htmlspecialchars(),它们看起来如下:

Pass: p@&#036;S
SQLPass: p@$S

如何从不同的字符串中正确比较这两个值?

2 个答案:

答案 0 :(得分:0)

你的输出看起来和我一样......但后来我变老了:)

您的第$sqlPass = htmlspecialchars('trim', $row['user_pass']);行有误,因此使用$sqlPasshtmlspecialchars的值不正确。无论如何,当你从数据库中提取它时,在这种情况下不需要重用htmlspecialchars。您的行的问题是它使用了一个'trim'字符串,并将第二个变量解释为int。

答案 1 :(得分:0)

我感谢每个人提供的帮助,指导我找到解决方案。我最后使用$userPass = html_entity_decode($invItem['cfields'][8]['pw'])解决了这个问题。