好的,这是一个非常愚蠢的,但肯定是错的。
我有一个需要检查2个变量的PHP脚本($ 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); }
它仍然会运行代码并随着消息而消亡。
这没有任何意义,任何人都知道为什么会发生这种情况?
答案 0 :(得分:4)
根据您的描述,我最好的猜测是$ pid实际设置并且只是空的。
在if(isset($token) && isset($pid)){
运行以下代码之前:
print '<pre>';
print_r(get_defined_vars());
print '</pre>';
然后查看页面输出中是否存在$ pid或$ token。如果是,您可能需要更改条件以使用empty()函数而不是isset()。
答案 1 :(得分:1)
!empty($token)
可能效果更好
答案 2 :(得分:0)
尝试添加var_dump($token)
以确保该变量确实未设置,并且您实际上正在编辑您认为正在编辑的相同文件(发生在我身上)