当我尝试在if -else条件中声明一个变量时,它 此后不能使用(如果是else循环)
变量的var_dump()给出null,我尝试在条件之前初始化变量,然后var_dump给出初始化值
/*code section start here
*/
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response']))
{
$secret=get_option('googlerecap_clientsecret');
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response'].'&remoteip='.$_SERVER['REMOTE_ADDR']);
$responseData = json_decode($verifyResponse);
if($responseData->success)
{
$somevariable="verified";
$query2 ="UPDATE table_name SET captcha='Verified' WHERE id='".$insert_id."'";
$success2 = $link->query($query2);
}else{
$somevariable="Not verified";
}
}
var_dump($somevariable); // gives NULL a
答案 0 :(得分:1)
如果未设置$ _POST变量g-recaptcha-response,则将立即退出条件。由于您在此条件下都设置了“已验证”和“未验证”,因此,如果未设置g-recaptcha-response,则变量仍将为NULL。
您必须在条件之前放置$somevariable="Not verified";
才能进行后备。