這是我的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位,因爲當我添加了一個否則,如果檢查變量,我得到了$輸出作爲美國和$ _SESSION [「檢查」]作爲空白。這意味着if語句應該正常運行。
有沒有人有任何想法,爲什麼這是行不通的?
什麼是不工作?您是否嘗試通過在代碼中的各個位置打印語句和狀態來調試它? –
當它「未運行」時,$ _SESSION ['check']'和'$ output'的var_dump是什麼?在'if'語句之前,有一行代碼'var_dump($ _ SESSION ['check'],$ output);' – webbiedave
你試過在$ output上使用trim嗎?也許你在你的瀏覽器中看到的東西之前或之後有一個新的行或空格。 – mishu