PHP empty()不适合我


PHP empty() not working for me

我有一个URL: https://website.org/withdraw.php?valid_addr=1333mwKE7EcwLaR9ztdtEt7pPEfafpW4nn&amount=0.0002&_unique=1

和一行代码:

if (empty($_GET['amount']) || empty($_GET['valid_addr']) || empty($_GET['_unique']))==0) exit();

如果我删除这行,那么代码将成功运行。谁能告诉我我做错了什么?

如果三个字段中的任何一个为空,该行应该停止代码运行。

谢谢。

我想你应该使用array_key_exists而不是空。

if (!array_key_exists('amount', $_GET) || 
    !array_key_exists('valid_addr', $_GET) ||
    !array_key_exists('_unique', $_GET))
    exit();

From PHP empty() docs

确定变量是否为空。变量是如果不存在或其值为FALSE,则认为为空。如果变量不存在,Empty()不会生成警告。

参见Array Key Exists docs

if (($_GET['amount'] == 0) OR ($_GET['valid_addr'] == 0) OR ($_GET['_unique'] == 0)) { exit(); }

语法错误。移除==0)部分:

if(empty($_GET['amount']) || empty($_GET['valid_addr']) || empty($_GET['_unique'])) {
    exit();
}

左括号缺失,

   if ((empty($_GET['amount']) || empty($_GET['valid_addr']) || empty($_GET['_unique']))==0) exit();

试试…

你的代码应该是这样的:

if (empty($_GET['amount']) || empty($_GET['valid_addr']) || empty($_GET['_unique']))
{
  exit();
}

上面的代码有语法错误。我认为你想要验证0和1的唯一性。所以你应该试试这段代码

if (empty($_GET['amount']) || empty($_GET['valid_addr']) || $_GET['_unique'])==0) exit();