आप header('Referer: SOME_REFERER_URL')
का उपयोग नहीं कर सकते क्योंकि ब्राउज़र इसे किसी भी तरह से ओवरराइट करेगा।
उपयोगकर्ता सत्र में
सहेजें संदर्भित:
रीडायरेक्ट लक्ष्य के मालिक हैं iquality.itayb.net
फिर वहाँ यह करने के लिए कई तरीके हैं। पैरामीटर के रूप में
// in your first script save real referer to session
$_SESSION['REAL_REFERER'] = $_SERVER['HTTP_REFERER'];
// in the redirected script extract referer from session
$referer = '';
if (isset($_SESSION['REAL_REFERER'])) {
$referer = $_SESSION['REAL_REFERER'];
unset($_SESSION['REAL_REFERER']);
}
else {
$referer = $_SERVER['HTTP_REFERER'];
}
संदेश संदर्भित:
// in your first script
header('Location: http://iquality.itayb.net/index-he.html?referer=' . $_SERVER['HTTP_REFERER']);
// in your refered script extract from the parameter
$referer = '';
if (isset($_REQUEST['referer'])) {
$referer = $_REQUEST['referer'];
}
else {
$referer = $_SERVER['HTTP_REFERER'];
}
आप धोखा देने के लिए किसी अन्य सर्वर तो कुछ इस तरह उपयोग करना चाहते हैं:
$host = 'www.yourtargeturl.com';
$service_uri = '/detect_referal.php';
$vars ='additional_option1=yes&additional_option2=un';
$header = "Host: $host\r\n";
$header .= "User-Agent: PHP Script\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Referer: {$_SERVER['HTTP_REFERER']} \r\n";
$header .= "Content-Length: ".strlen($vars)."\r\n";
$header .= "Connection: close\r\n\r\n";
$fp = fsockopen("".$host,80, $errno, $errstr);
if (!$fp) {
echo "$errstr ($errno)<br/>\n";
echo $fp;
} else {
fputs($fp, "POST $service_uri HTTP/1.1\r\n");
fputs($fp, $header.$vars);
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
स्रोत
2013-02-02 11:00:01
हाँ, आप इसे बचाने की जरूरत है पुनर्निर्देशन से पहले। –
यह रीडायरेक्ट 302 कोड के साथ लोड नहीं करता है? यदि हां, तो इसे मूल संदर्भकर्ता को तब तक संरक्षित करना चाहिए जहां तक मैंने परीक्षण किया है। – rockyraw