2010-10-28 31 views
8

Comment obtenir le référent HTTP lorsqu'il est redirigé depuis un autre site Web, et non lorsqu'il clique sur un lien, car cela fonctionnerait pour $_SERVER['HTTP_REFERER'], mais cela ne fonctionne pas lorsqu'un utilisateur a été redirigé vers un site Web et le référent serait vide.Obtenir le référent HTTP sur la redirection

Quelle sera la méthode pour obtenir le référant?

Répondre

9

Comment pouvez-vous obtenir le Référent HTTP lorsque redirigé depuis un autre site

Vous ne pouvez pas. Si la redirection a lieu sous votre contrôle, vous pouvez ajouter le referer d'origine en tant que paramètre, mais si le redirecteur externe ne le fait pas, vous n'avez aucun moyen de récupérer l'information.

+0

Aw. Donc, il n'y a absolument aucun moyen de savoir d'où vient l'utilisateur lorsque l'utilisateur a été redirigé? – MacMac

+0

@YouBook pas autant que je sache, non. –

4

Un exemple de la façon dont je l'ai fait. Disons que nous avons 3 pages, l'une appelant la suivante.

page1.com -> page2.com -> page3.com. 

en page2.com obtenir le page1.com en utilisant:

$referrer = $_SERVER['HTTP_REFERER'];//=page1.com 

lors de la redirection à page3, envoyer referrer $ en tant que paramètre GET

page3.com?referrer=$referrer 

en page3 lire le referrer $ à partir du get.

$initialReferrer = $_GET['referrer'];//=page1.com 
+0

On pourrait directement appeler 'page3.com? Referrer = page4.com', donc faites attention aux problèmes de sécurité/allocation. De plus, '$ _SERVER ['HTTP_REFERER'] doit être' rawurlencode' -d avant d'être ajouté à l'URL. – Xenos