Question

J'ai un script qui redirige vers un lien comme

header("Location:http://foo.com/abc.xyz");

Mais je veux soit définir le HTTP_REFERRER être http://foo.com ou blank pour que le site http://foo.com Je ne peux pas suivre que la référence a été envoyée à partir d'un autre domaine dans lequel le script est installé.

Était-ce utile?

La solution

Bien sûr, il y a un moyen de parcourir un référent. À quel point ce sera utile pour vous de décider :)

Étant donné que le référence vient du client du navigateur Web, nous devrons créer notre propre "Client WWW PHP" ... essentiellement un proxy.

Voici un code qui contribuera à toutes les informations qui sont là:

<?php

// Setup Information
$host = "www.yoursite.com";
$page = "/index.html";

// Open the socket
$fp = fsockopen($host,80,$errno,$errstr,30) or die("Could not establish a connection. $errstr($errno)");

// Request the page
fputs($fp,"GET $page HTTP/1.0\r\n");
fputs($fp,"User-agent: PHP WWW Client\r\n");
fputs($fp,"Referer: http://www.anothersite.net\r\n");
fputs($fp,"\r\n");

// Read response
while (!feof($fp)) {
$page .= fgets ($fp,128);
}

// Close Socket
fclose($fp);

?>

$page contiendra désormais le contenu HTML de la page que vous venez de recevoir à partir du serveur.

Quant à ce que vous en faites ensuite, cela dépend de vous :) Vous devrez probablement formater toutes les URL dans le code afin qu'ils fonctionneront à partir de votre domaine. Imprimez ensuite le code HTML.

Généralement, cela n'est pas vraiment une bonne idée, mais c'est le seul moyen que je connaisse pour «parcourir» le référent et l'agent utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top