PHP字符串与===

PHP字符串与===,php,string,login,Php,String,Login,我正在为我的网站制作一个登录脚本 它使用用户通行证等将POST(使用curl)发送到另一台服务器。 如果信息错误,则返回错误登录 但是当我检查回复时,即使它是错误的,它也会说登录成功 if ($result === "Bad login"){ $password_status = 'Wrong password.'; $error = true; } 我也尝试过strcmp,但没有成功。是的,尝试var\u dump($result),因为它可能包含其他字符 也许可以试试: &

我正在为我的网站制作一个登录脚本

它使用用户通行证等将
POST
(使用
curl
)发送到另一台服务器。
如果信息错误,则返回
错误登录

但是当我检查回复时,即使它是错误的,它也会说登录成功

if ($result === "Bad login"){
    $password_status = 'Wrong password.';
    $error = true;
}
我也尝试过strcmp,但没有成功。

是的,尝试var\u dump($result),因为它可能包含其他字符

也许可以试试:

<?php
if (strpos(strtolower($result), 'bad login') !== false) {
    $error = true;
}
是,请尝试var_dump($result),因为它可能包含其他字符

也许可以试试:

<?php
if (strpos(strtolower($result), 'bad login') !== false) {
    $error = true;
}

$result的确切值是多少?你的完整if声明是什么

$result必须精确匹配,例如:

echo ('Bad login' === 'Bad login') ? 'True<br />' : 'False<br />'; // True
echo ('Bad login ' === 'Bad login') ? 'True<br />' : 'False<br />'; // False (Space after login)
echo ('Bad Login' === 'Bad login') ? 'True<br />' : 'False<br />'; // False (Capital L on login)

$result的确切值是多少?你的完整if声明是什么

$result必须精确匹配,例如:

echo ('Bad login' === 'Bad login') ? 'True<br />' : 'False<br />'; // True
echo ('Bad login ' === 'Bad login') ? 'True<br />' : 'False<br />'; // False (Space after login)
echo ('Bad Login' === 'Bad login') ? 'True<br />' : 'False<br />'; // False (Capital L on login)

什么是
$result
?它是从哪里来的?你说回复总是成功的,但是如果
if语句
,你就漏掉了这一部分。另外,我认为您不需要在这里进行严格的比较(
==
)。@zerkms:这是来自使用curl的POST请求的回复,什么是
$result
?它是从哪里来的?你说回复总是成功的,但是如果
if语句
,你就漏掉了这一部分。此外,我认为您不需要在这里进行严格的比较(
=
)。@zerkms:这是来自使用curl@PeeHaa当前位置这是对他的问题的回答,我认为这应该是一个答案。@Cyclone:可能是。然而,我不明白strpos()与它有什么关系。因为OP没有提供足够的信息,所以很难说这是否是一个解决方案。@PeeHaa:至少对我来说,这似乎有点明显,这个答案的作用是检查字符串是否包含“坏登录”。当然,这可能意味着他们应该
trim($result)
最有可能,但既然这对OP有效,那么它就起作用了。我只是按照他说的登录是从另一个站点使用curl验证的,他有$result的值。很可能至少有空白,或者可能有完整的html网页。带strtolower的strpo应该足以找到$result中的“坏登录”,这是正确的all@PeeHaa当前位置这是对他的问题的回答,我认为这应该是一个答案。@Cyclone:可能是。然而,我不明白strpos()与它有什么关系。因为OP没有提供足够的信息,所以很难说这是否是一个解决方案。@PeeHaa:至少对我来说,这似乎有点明显,这个答案的作用是检查字符串是否包含“坏登录”。当然,这可能意味着他们应该
trim($result)
最有可能,但既然这对OP有效,那么它就起作用了。我只是按照他说的登录是从另一个站点使用curl验证的,他有$result的值。很可能至少有空白,或者可能有完整的html网页。strtolower的strpo应该足以发现$result中的“坏登录”,仅此而已