Question

Je crée un site Web et, sur une page en particulier, je souhaite renvoyer l'utilisateur à la page précédente. Je suis assez nouveau en PHP / HTML et utilise un code existant pour obtenir des idées et de l'aide.

Le code existant utilise la méthode suivante:

if (! empty($HTTP_REFERER)) 
{
    header("Location: $HTTP_REFERER");
} else 
{
    header("Location: $CFG->wwwroot");
}

Cependant, lorsque j'utilise ce code, HTTP_referer est toujours traité comme vide et l'utilisateur est redirigé vers la page racine. Des failles évidentes dans ce code?

Était-ce utile?

La solution

Vous devez utiliser:

Vous devez utiliser:

<*>SERVER['HTTP_REFERER']

Autres conseils

Ne vous fiez pas au fait que le référent HTTP est un champ valide, voire non vide. Les utilisateurs peuvent choisir de ne pas laisser cet ensemble ne laissant aucune vérification pour cette variable du côté vide de la clause IF-ELSE.

Vous pouvez vous protéger contre cela en envoyant un paramètre dans les paramètres URL ou POST qui contiendrait une valeur que vous pouvez utiliser pour rediriger l'utilisateur vers.

isset ($ _ SERVER ['HTTP_REFERER'])? $ _SERVER ['HTTP_REFERER']: '';

Si vous souhaitez renvoyer la personne à la page précédente et que celle-ci fonctionne, que le référent soit correctement défini, vous pouvez ajouter un paramètre GET à l'URL (ou POST). Vous devez alors coder l'URL. Quelque chose comme

http://www.domain.com.au/script.php?return=http%3a%2f%2fwww.domain.com.au%2fthis-is-where-i-was % 2f

Vous pouvez utiliser la fonction urlencode () de PHP.

Notez également que l'en-tête du référent est peut-être vide ou manquant, vous ne devez donc pas vous y fier du tout.

Vous devriez utiliser

Vous devriez utiliser

<*>

Cependant, regardez la configuration de register_globals dans php.ini, elle devrait être désactivée pour des raisons de sécurité. Vous pouvez en savoir plus sur le site du manuel PHP .

SERVER['HTTP_REFERER']

Cependant, regardez la configuration de register_globals dans php.ini, elle devrait être désactivée pour des raisons de sécurité. Vous pouvez en savoir plus sur le site du manuel PHP .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top