好吧,这是一个非常愚蠢的问题,但肯定有问题。
我有一个 php 脚本需要检查 2 个变量($token 和 $pid)
if(isset($token) && isset($pid)){
$ppurl = "https://api-3t.paypal.com/nvp";
$cURL = curl_init();
curl_setopt($cURL, CURLOPT_HEADER, false);
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cURL, CURLOPT_TIMEOUT, 5);
$GetExpressCheckoutDetails = $ppurl."?USER=".$apiuser."&PWD=".$apipwd."&SIGNATURE=".$apisig."&METHOD=GetExpressCheckoutDetails&VERSION=78&TOKEN=".$token;
curl_setopt($cURL, CURLOPT_URL, $GetExpressCheckoutDetails);
$info = parsePPResponse(curl_exec($cURL));
die (what);
}
不过,当我在没有任何变量的情况下直接访问脚本时,它仍然运行该代码。
同样,如果我之前添加这个:
if(!isset($token)){ die(novar); }
它仍然会运行代码并死去,并显示消息 what.
这没有任何意义,任何人都知道为什么会发生这种情况?
根据您的描述,我最好的猜测是$pid实际上是设置的,只是空的。
在if(isset($token) && isset($pid)){
之前运行以下代码:
print '<pre>';
print_r(get_defined_vars());
print '</pre>';
然后查看页面输出中是否存在$pid或$token。 如果是,您可能需要更改条件以使用 empty() 函数而不是 isset()。
!empty($token)
可能效果更好
尝试添加var_dump($token)
以确保变量确实未设置,并且您确实在编辑您认为正在编辑的同一文件(发生在我身上)