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();

如果我删除该行,则代码会成功运行。谁能告诉我我哪里做错了。

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

谢谢。

缺少左括号,

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

试一试...

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

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

我想你想利用 array_key_exists 而不是空的。

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

来自 PHP empty() 文档

Determine whether a variable is considered to be empty. A variable is considered empty if it does not exist or if its value equals FALSE. empty() does not generate a warning if the variable does not exist.

Array Key Exists docs

你的代码应该是这样的:

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();
if (($_GET['amount'] == 0) OR ($_GET['valid_addr'] == 0) OR ($_GET['_unique'] == 0)) { exit(); }