? qui s'ajoute aprés l'adresse lors d'un POST
Bonjour,
Je viens de remarquer un comportement "étrange" sur le referer d'une de mes pages lors de l'envoie de formulaire.
J'ai un formulaire basique avec un jeton pour pouvoir vérifier la provenance du formulaire à la réception:
Code:
1 2 3 4 5
|
<form id="idFormAjout" method="POST" action="validation_ajout.php">
<input type="hidden" name="token" id="token" value="<?php echo $token; ?>"/> <!--Jeton de sécurité-->
<input type="submit" id="btnSendForm" value="Ajouter à la base">
</form> |
Dans ma page "validation_ajout.php", je vérifie le jeton, si il est bon, je lance le traitement de mon formulaire avec les redirections qui vont bien selon les cas.
Le problème c'est que le jeton n'était jamais valide, j'ai donc cherché et je me suis rendu compte que le probléme venait du referer.
En effet dans ma vérification du jeton, je faisais
Code:
1 2
|
if($_SERVER['HTTP_REFERER'] == 'ajout.php') //ajout.php étant la page ou se situe le formulaire |
et qu'en je faisait un echo du $_SERVER['HTTP_REFERER'] j'obtenais "ajout.php?" au premier envoie du formulaire puis "ajout.php"(normal) aux autres.
Je ne comprends pas d'où vient le "?", j'ai un autre formulaire qui suit le même schéma mais qui n'a pas ce probléme...
Pour contourner le probléme j'ai fais :
Code:
1 2 3
|
$referer = array('ajout.php','ajout.php?');
if(in_array($_SERVER['HTTP_REFERER'], $referer)) |
mais j'aimerais comprendre pourquoi il ajoute ce ?.
Est-ce normal? Pourquoi cela fait-il cela?
Si quelqu'un peut m'expliquer ce serait gentil =).
Merci.