$_GET['variable'] == 'text'

$_GET['variable'] == 'text'

我想比较 get 变量是否是特定文本。但是我无法进入 if-statemeant。 echo "invalid user" 没有写入。

代码:

<?php 
if ($_GET['status'] && $_GET['status'] == "login_fail") {
                        echo "invalid user";
                    }
?>

当我在 if-statemeant 之前(以及之后)检查变量状态时:

echo $_GET['status'];

或与

print_r($_GET['status']);

结果都在

login_fail

所以变量 status 在那里并且有 "login_fail"

但是"invalid user"没有写!

我也尝试过使用 === 或使用 ' instead " 等等。

为了避免$_GET什么都没有的时候出错,使用这个:

if (!empty($_GET['status']) && ($_GET['status'] == "login_fail")) {
   echo "invalid user";
}

你应该使用 isset() 函数来检查变量是否有任何值:

if(isset($_GET['status']) && $_GET['status'] == 'login_fail')
{
    echo "invalid user";
}

试试这个:

<?php 
if (!empty($_GET['status']) && $_GET['status'] == "login_fail") {
  echo "invalid user";
}
?>

使用 isset()。

`

<?php 
if (isset($_GET['status']) && $_GET['status'] == "login_fail") {
    echo "invalid useenter code herer";
}

`

更改以测试是否先在 $_GET 变量中设置 'status',然后检查其值。

if (isset($_GET['status']) && $_GET['status'] == "login_fail") 
{
   echo "invalid user";
}

这样你就不会 运行 在没有设置的情况下遇到任何问题。

我认为你的代码没有任何问题。 如果你现在遇到问题,你可以添加这一行 在你的 if 条件脚本之前。 $_GET['status'] = trim($_GET['status']);