variable $_POST[""]) dans traitement de formulaire

variable $_POST[""]) dans traitement de formulaire - PHP - Programmation

Marsh Posté le 01-02-2006 à 20:54:57    

Bonjour à tous,
je lis dans de nombreux scripts php de traitement de formulaire (=page appelée après l'envoi du formulaire) l'utilisation des variables $_POST[""].
Je n'ai pas cette habitude : si mon formulaire (méthode post) comporte la variable $body (définie par name="body" ), j'utilise la variable $body dans ma page de traitement et non $_POST["body"].
Quelqu'un saura-t-il me donner une raison de préférer $_POST["body"] ?
 
N.B.  
J'ai une petite idée depuis qu'un robot inonde un forum de pourriels, sans l'avoir encore vérifiée : si le robot détecte le nom de la page de traitement depuis la balise <form action=post.php ...> et le nom du message à poster depuis la balise ad hoc, il lui suffit de passer $body en argument dans l'adresse de traitement : post.php?body=visitez mon pourriel, alors qu'un if(isset($_POST['body'])) permet de savoir si $body a été passé par le serveur. Qu'en est-il en fait ? Merci de vos réponses.

Reply

Marsh Posté le 01-02-2006 à 20:54:57   

Reply

Marsh Posté le 01-02-2006 à 20:58:26    

si ce que tu dis marche, c'est surement parce que ton register_global est sur on dans ton php.ini
 
C'est très mauvais pour des raisons de sécurité que tu décris toi-même dans la fin de ton message. Si le register_global est sur off, jamais " post.php?body=visitez mon pourriel " ne mettra une valeur dans $body, seulement dans $_GET['body'], ce qui est différent de $_POST['body']

Reply

Marsh Posté le 01-02-2006 à 21:00:40    

Merci Djebel1 !
Je viens de vérifier sur Free :
register_globals On On
Et je présume qu'un unset($body) dans la page de traitement videra aussi $_POST['body'] ...


Message édité par peter45 le 01-02-2006 à 21:08:59
Reply

Marsh Posté le 01-02-2006 à 21:03:22    

Merci à omega2 qui venait de m'expliquer l'influence du register global sur les variables,  y a une heure lol

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed