web-dev-qa-db-fra.com

La redirection temporaire doit détecter l'URL de la demande de page d'origine à partir d'un moteur de recherche, puis la rediriger vers cette page.

Lorsque vous vous rendez sur le site de mon client, celui-ci doit vérifier que vous avez 21 ans. Si vous cliquez sur une page du domaine, il vérifie si le cookie d'âge vérifié est défini. Sinon, il vous faudra une page de défi pour indiquer votre date de naissance, après quoi elle vous dirigera vers la page d'index (ou une page de rejet, si vous avez mal répondu).

Le problème que j'ai rencontré est le suivant:
Si un utilisateur trouve l'une des pages dans un moteur de recherche après avoir réussi le test d'âge, comment puis-je le renvoyer à la page qu'il demandait à l'origine?

Exemple:
L'utilisateur trouve www.example.com/blog.php dans Google. Après avoir cliqué sur le lien, il est redirigé vers www.example.com/age_verify.php. Une fois le test réussi, comment puis-je les renvoyer à www.example.com/blog.php au lieu de la valeur par défaut www.example.com?

Je suis déconcerté. Je suis sûr que je traite avec des référents HTTP, mais je ne sais pas à quel titre.

1
Brandon

Ne comptez pas sur le référant. Vous pouvez stocker l'URL en tant que paramètre de chaîne de requête ou en tant que paramètre de session.

  1. L'utilisateur frappe blog.php. Cette page vérifie le cookie d'âge.
  2. Si le cookie d'âge n'est pas présent, stockez l'URL actuelle en tant que paramètre de chaîne de requête comme ceci - /age_verify.php?returnURL=blog.php. Vous pouvez également stocker l'URL dans un paramètre de session.
  3. Rediriger l'utilisateur vers age_verify
  4. Après avoir vérifié l'âge, extrayez l'URL de la chaîne de requête ou de la session, puis effectuez une autre redirection.
1
Sripathi Krishnan

Dans age_verify.php, vous devez enregistrer $ _SERVER ['HTTP_REFERER'], qui est le référent dans une variable, par exemple $ referer.

Il y a plusieurs façons de le prendre à partir de là, mais l'un des moyens consiste simplement à définir le cookie et à appeler age_verify.php? Ref = $ referer (facile à effectuer via un formulaire GET).

Avant TOUTE sortie de age_verify.php, il faut vérifier le cookie et, s’il existe, rediriger vers $ referer. Ceci est fait en utilisant l'en-tête ("Location: $ referer").

0
Itai