如果语句运行不正常

时间:2011-10-20 15:31:00

标签: php

这是我的PHP代码,基本上我检查用户的国家/地区,如果它与允许的国家/地区匹配,我让联盟代码运行。好吧,由于某种原因,它没有运行

<?php
$output = shell_exec('geoip-lookup '.$_SERVER['REMOTE_ADDR']);
if($_SESSION['check']!= 1 && ($output == 'US' || $output== 'AU' || $output== 'GB' || $output== 'CA'))
{
$submission = $_POST['submission_id'];
$_SESSION['check']=1;
echo '<div class="shareasale"><img src="https://shareasale.com/sale.cfm?amount=0.00&tracking=';
echo $submission;
echo '&transtype=lead&perlead=25.00&merchantID=###" width="1" height="1"></div>';
}
?> 

我认为OR位有问题,因为当我添加一个else来检查变量时,我将$ output输出为US,$ _SESSION ['check']为空。这意味着if语句应该正常运行。

有谁知道为什么这不起作用?

1 个答案:

答案 0 :(得分:6)

您没有session_start()来电,因此您的$ _SESSION数组不会被填充,因此没有check值可供比较。

同样,你确定你的shell_exec()调用实际上有效吗? geoip-lookup可能不在PHP运行该程序的任何shell的路径中。输出还可能包含换行符,回车符等...,if()调用中的确切字符串匹配要求未考虑在内。 $output实际上可能是“US \ n”而不仅仅是“US”。