Maison  >  Article  >  développement back-end  >  Pourquoi ma variable PHP $_SERVER[\'HTTP_REFERER\'] est-elle manquante et quelles sont les alternatives ?

Pourquoi ma variable PHP $_SERVER[\'HTTP_REFERER\'] est-elle manquante et quelles sont les alternatives ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-23 06:32:13574parcourir

Why is My PHP $_SERVER['HTTP_REFERER'] Variable Missing and What Are the Alternatives?

Variable "HTTP_REFERER" manquante en PHP

En PHP, la variable $_SERVER['HTTP_REFERER'] est utilisée pour accéder à l'URL de la page qui renvoie à la page actuelle. Cependant, certains développeurs peuvent rencontrer l'erreur "Avis : Index non défini : HTTP_REFERER".

Cette erreur se produit car, selon la documentation PHP, la variable HTTP_REFERER n'est pas toujours disponible. Il est défini par l'agent utilisateur (par exemple, le navigateur) et peut être modifié par l'utilisateur. De plus, tous les agents utilisateurs ne fourniront pas ces informations.

Comprendre la variable HTTP_REFERER

La variable HTTP_REFERER est un en-tête de requête HTTP qui indique l'URL de la page qui a fait référence l'utilisateur à la page actuelle. Ces informations sont utiles de diverses manières, telles que :

  • Suivi du comportement des utilisateurs et du flux de trafic du site Web
  • Détection des demandes malveillantes ou de spam
  • Prévention de la falsification de demandes intersites (CSRF)

Alternative aux HTTP_REFERER

Étant donné que HTTP_REFERER n'est pas entièrement fiable et peut ne pas être disponible, une approche alternative consiste à utiliser la méthode getDocumentReferrer() dans l'objet window de JavaScript. Cette méthode renvoie l'URL de la page liée à la page actuelle et est plus fiable que HTTP_REFERER.

Exemple

const referrer = document.referrer;

Cependant, il est important de noter que cette méthode peut ne pas fonctionner dans tous les navigateurs et peut également être modifiée par l'utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn