我正在使用php腳本重定向我的網站中的用戶,它一直工作得很好,直到上個星期一,突然它可以正常工作,有時它重定向到另一個實例上的期望頁面錯誤。爲什麼我的重定向工作是隨機的
重定向URL
devaltrack.dailyusers.com/rd?track=130&go=www.bbc.co.uk
自帶有時
請求的URL /www.bbc.co.uk錯誤在此服務器上找到。
當我深入挖掘它,我意識到,如果我鍵入go
值與http
,它會永遠工作,沒有它工作時有時無, 有誰能夠給我什麼怎麼回事
重定向腳本
$redirect_page= '/rccp.php';
$trusted_domain = $_GET['go'];
$track_id = $_GET['track'];
$strsql = ("CALL select_whitelisturls($track_id)");
$result = mysql_query($strsql);
$row = mysql_fetch_array($result);
if($row==""){
redirect_cookie_user($redirect_page);
}
if($row["redirect"] == 1){
if (false === strpos($trusted_domain, '://')) {
$trusted_domain = 'http://' . $trusted_domain;
//$trusted_domain = strtolower($trusted_domain);
}
if ($i = strpos($trusted_domain, '/', strpos($trusted_domain, '//')+2)){
$trusted_domain = strtolower(substr($trusted_domain, 0, $i)). substr($trusted_domain, $i);
}else{
$trusted_domain = strtolower($trusted_domain);
}
$domainarray = explode("\n", $row['domainname']);
if ($domainarray[0] == null){
exit();
}
foreach ($domainarray as $value) {
if (false === strpos($value , '://')) {
$value = "http://".$value;
$value = strtolower($value);
}else
{
$value = strtolower($value);
}
$pos = strrpos($trusted_domain, $value);
$domain_string =parse_url($trusted_domain);
$value_string =parse_url($value);
if(($pos !== false) &&($pos == 0) && ($value_string['host'] == $domain_string['host'])){
if (isset($_COOKIE["id"])){
$_GET['id'] = $_COOKIE["id"];
$_GET['go'] = $trusted_domain;
header('Location: '.$redirect_page.'?'.http_build_query($_GET));
exit();
}else{
header('Location: '.$trusted_domain);
exit();
}
}
}
}else{
exit();
}
function redirect_cookie_user($redirect_page){
if (isset($_COOKIE["id"])){
$_GET['id'] = $_COOKIE["id"];
header('Location: '.$redirect_page.'?'.http_build_query($_GET));
}
else{
exit();
}
}
它被解釋爲本地URL路徑,而不是URL,除非你寫了一個包含協議前綴。 – mario 2014-11-25 08:01:18
如果你需要實現的幫助(假如它真的在你聲稱的之前工作),你將不得不顯示上述代碼。 – mario 2014-11-25 08:02:25
對不起,我的本地跟蹤網址..等不及格編輯它.. – 2014-11-25 08:02:54