Salut à tous
J'ai vu que ce sujet à été traité plusieurs fois, mais je n'ai pas réussi à trouver une réponse satisfaisante à mon problème (que voici) :
Je veux pouvoir rediriger (grâce à un bête header() avec Location) n'importe quoi depuis une page (l'url fournie à Location est passée par GET).
Mais je veux aussi modifier le referer qui est envoyé par HTTP...
Pour ce faire je devrai normalement utiliser la fonction header() avec le paramètre Referer comme suit :
Code :
- header('Referer: '.$referer);
- header('Location: '.$url);
|
Or, cette syntaxe ne fonctionne pas
Et même en inversant Referer et Location ça ne marche pas (j'ai créé une petite page, qui affiche le referer, et sur laquelle pointe ma redirection -> le referer est toujours celui de la page qui pointe sur la page de redirection.
Aperçu :
Code :
- <?php
- // Récupération des paramètres GET
- // *URL
- $url = NULL;
- if (isset($_GET['url']))
- {
- $url = $_GET['url'];
- }
- // *Referer
- $referer = NULL;
- if (isset($_GET['referer']))
- {
- $referer = $_GET['referer'];
- }
- // Envoi des HEADER (redirection)
- header('Referer: '.$referer); // Changer le referer
- header('Location: '.$url); // Page de destination
- ?>
|
Pour rediriger, j'appelle la page de redirection comme suit :
<a href="redir.php?url=...&referer=...">Redirection</a>
|
Même en remplaçant dans la page de redirection header('Referer: '.$referer); par header('Referer: http://unsite.com/index.php'); le résultat reste le même.
J'ai trouvé une classe PHP qui le permettait, mais il fallait utiliser PHP5 avec l'extension CURL, ce qui n'est pas installé chez les hébergeurs gratuits tels que lycos...
Pour info, cette classe s'appelle Simplecurl
Je sais que les navigateurs peuvent bidouiller eux-même les en-tetes, donc normalement le serveur devrait aussi pouvoir...
Quelqu'un aurait-il une solution avec PHP<5 et sans librairies PHP préinstallée ?
Message édité par Superjun le 26-05-2006 à 01:44:36
---------------
J'aime la vie, et je la croque à pleine dents, cette saloppe.