PHP没有';看不到两个相等的字符串

PHP没有';看不到两个相等的字符串,php,Php,因此,我正在忙着验证系统,当游戏玩家将一句话置于他/她的状态时,在这种情况下:HT-N5I4-S3ZI-GU6A,我的脚本检查它是否与数据库中的代码相同。如果是,则证明是他们的账户。因为我经历过人们用假名记账 当我回显数据库中的代码时,它会回显: HT-N5I4-S3ZI-GU6A 我的测试玩家任务中的一个回响: HT-N5I4-S3ZI-GU6A 这是完全相同的代码,但当我想这样比较它们时: if($_SESSION['user']['email_activation'] == $fu

因此,我正在忙着验证系统,当游戏玩家将一句话置于他/她的状态时,在这种情况下:
HT-N5I4-S3ZI-GU6A
,我的脚本检查它是否与数据库中的代码相同。如果是,则证明是他们的账户。因为我经历过人们用假名记账

当我回显数据库中的代码时,它会回显:
HT-N5I4-S3ZI-GU6A

我的测试玩家任务中的一个回响:
HT-N5I4-S3ZI-GU6A

这是完全相同的代码,但当我想这样比较它们时:

    if($_SESSION['user']['email_activation'] == $functions->getMotto($_SESSION['user']['username']))
    {
        echo "Works";
    }
    else
    {
        echo "Doesnt work";
    }
它总是重复“不起作用”。我是否使用了错误的均衡运算符?还是其他错误

谢谢

试试这段代码

if($_SESSION['user']['email_activation'] === $functions->getMotto($_SESSION['user']['username']))
{
    echo "Works";
}
else
{
    echo "Doesnt work";
}

谢谢。

你确定某个地方没有不可打印的字符(换行符、空格等)?使用
var_dump()
,而不是
echo
。是的,你应该使用
====
而不是
=
,或者类似
0=='a string'
的东西将计算为
true
echo bin2hex($string1)。“”.bin2hex($string2);并比较我们的用户:
var\u转储(md5($\u会话['user']['email\u activation'])
var\u转储(md5($functions->getmont($\u会话['user']['username'))