Je souhaite autoriser l'accès à une certaine page uniquement à partir d'une page donnée (où l'utilisateur doit entrer un mot de passe). La saisie directe de l'URL dans le champ URL du navigateur est interdite.
j'ai écrit le code suivant:IE8 et HTTP_REFERER
<?php
// only allow access through front door
$from = getenv("HTTP_REFERER");
if ($from != "http://www.mysite.net/password.php")
include("http://www.mysite.net/secret_nok_tgpxFC6phBRLw1Wh.php");
else
include("http://www.mysite.net/secret_ok_tgpxFC6phBRLw1Wh.php");
?>
Cela fonctionne bien dans Firefox, mais IE8 ouvre la page même lorsque l'URL est entré dans le champ URL. Comment puis-je résoudre ceci? Et, est-ce que mon approche est fausse?
TIA
Steven
EDIT:
des réponses que je suis devenu si présent, je comprends que la bonne façon de procéder serait d'utiliser des sessions (basées sur les cookies). Quelqu'un peut-il me recommander un bon tutoriel sur le sujet? (alors que php.net contient des exemples, c'est une référence, pas un tutoriel)
Il est étrange que l'accès soit * toujours * accordé, alors que je m'attendrais à ce qu'il ne soit * jamais * accordé. Si HTTP_REFERER n'est pas envoyé, il ne peut certainement pas correspondre à la valeur requise? – stevenvh