私は、ユーザーが米国、英国、CA(Tier1としてラベル付けされている)からモバイルまたはデスクトップから接続されている場合、そのような地域のユーザーをリダイレクトするPHPスクリプトを持っています。他のページにリダイレクトします。 私は、ip2geoサイトの1つからダウンロードした内部ipデータベースを使用してジオ検証を行っています。データベースはうまくいきます。最大0.2秒で365k行のクエリを実行すると、モバイル検出はこのクラスを使用して行われます。http://mobiledetect.net/主な問題は、私がスクリプトを実行しているときに、何らかの形でユーザーが迷子になることです。クリック数の40%が何らかの形でソースに到達していないようです。 cpanelからリダイレクト(通常はすべてのユーザが同じページにリダイレクトされています)を正常に実行していても、ヘッダ( "Location:")を使用しないと、コードにエコーはありません。PHPのヘッダ( "場所:");
include ("Mobile_Detect.php");
ob_start();
$ip=$_SERVER['REMOTE_ADDR'];
date_default_timezone_set("America/New_York");
$date = date("Y-m-d");
$hour = date("G");
$detect = new Mobile_Detect();
if ($detect->isMobile())
$browser = "Mobile";
else
$browser = "Desktop";
$mysqli = new mysqli($servername, $username, $password, $dbname);
$countryCode = getCountry();
$unique = checkuniqueip($ip);
$getTier = getCountryTier();
$CountryTier = $getTier['countryTier'];
trackvisitors();
redirect();
、ここでリダイレクト機能である:
<?php
function redirect(){
global $browser;
global $hour;
global $ip;
global $date;
global $mysqli;
global $CountryTier;
$redirectTo = $mysqli->query("SELECT OFFERLINK, AFFLINK FROM Links1 WHERE Tier = '$CountryTier' AND BROWSER = '$browser'");
while($row = $redirectTo->fetch_assoc()){
$result = $row['AFFLINK'];
$result1 = $row['OFFERLINK'];
}
$sql = $mysqli->query("UPDATE UniqueIp
SET LINKREDIRECTED = '$result1'
WHERE IP = '$ip'
AND DATE = '$date'
AND HOUR = '$hour'
AND BROWSER = '$browser'");
$mysqli->close();
header("Location: ".$result);
}
?>
に動作しますエラーとは何ですか? –
あなたの 'redirect()'はあなたの '$ redirectTo/Links1'クエリに一致する行があるかどうかに依存しているようです。すべての 'redirect()'呼び出しが '$ row ['AFFLINK'];' value?一致する行がない場合に備えて、デフォルトの '$ result'値を入れることをお勧めします。 – JustBaron
@AlexLucaci質問に答えたときにコメントに返信し、質問を受け入れるか、投票の回答を受け入れるのは良い形式です;) – JustBaron