passage de parametre par post et get

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : passage de parametre par post et get

par jeff » 26 oct. 2005, 17:50

et pourtant je l'ai lu en long en large et en travers cette page :?
enfin dit comme ca je comprend mieux :D

par Xenon_54 » 26 oct. 2005, 17:30

REQUEST_METHOD ne peut renvoyer POST et GET. Le protocole HTTP ne peut utiliser les deux méthodes.

Si ton formulaire est envoyé en POST, REQUEST_METHOD renverra toujours POST et ce, même si tu as des paramètres dans l'URL puisque le formulaire aura utilisé POST.

Cependant tu peux toujours vérifier laquelle des méthodes définies en premier la variable demandée en vérifiant dans l'ordre si POST définit la variable recherchée et si non, si GET la définie. Un peu comme $_REQUEST fait pour récupérer toutes les variables en effectuant la vérification dans l'ordre défini par la configuration "variables_order" du php.ini: http://www.php.net/manual/fr/ini.core.p ... bles-order

$_REQUEST: http://www.php.net/manual/fr/language.v ... perglobals

;)

par jeff » 26 oct. 2005, 17:22

le truc c'est que j'ai aucun probleme pour recupere la variable par GET
mais je voulai recuperer la methode par request_method

par Xenon_54 » 26 oct. 2005, 17:20

Normalement, les paramètres passés dans l'URL de l'attribut "action" sont récupérables par la variable superglobale $_GET et ce, même si l'attribut "method" du formulaire est POST. En effet, les paramètres restent en GET puisqu'ils sont dans l'URL.

Vérifie en utilisant la fonction var_dump() sur les variables superglobales $_GET et $_POST.

$_SERVER['REQUEST_METHOD'] retournera toujours POST si tu utilises method POST dans ton formulaire. Cependant, PHP récupèrera toujours les paramètres passés dans l'URL avec GET malgré que la requête soit POST.

=> À ce que je peux voir, tu tentes d'implanter un MVC. Bonne chance :D

par jeff » 26 oct. 2005, 17:14

le probleme c'est que
$_SERVER['REQUEST_METHOD']
me retourne POST alors que j'attend GET de toute facon mon systeme est trop contraignant, je vais le refaire avec un base

par Truc » 26 oct. 2005, 17:10

j'ai la meme chose, parcontre je ne peut récupèrer les variables passées dans l'url avec POST:

:arrow: echo $_GET['module']; .... OK
:arrow: echo $_POST['module'], .... ERREUR

fait le test :wink:

par jeff » 26 oct. 2005, 16:48

bon j'ai refais des testes
donc toujour avec l'url

Code : Tout sélectionner

http://localhost/projet_ing/index.php?module=auth&action=verif
avec
foreach ($_REQUEST as $cle=>$val)
{echo $cle.'-'.$val.'-'.$_SERVER['REQUEST_METHOD'].'<br/>';}

Code : Tout sélectionner

module-auth-POST action-verif-POST log-dv-POST pass-dsv-POST valider--POST PHPSESSID--POST
et avec
foreach ($_GET as $cle=>$val)
{echo $cle.'-'.$val.'-'.$_SERVER['REQUEST_METHOD'].'<br/>';}

Code : Tout sélectionner

module-auth-POST action-verif-POST
c'est un comportement normal??

par Truc » 26 oct. 2005, 16:45

mais je recupere tout en post
effectivement c'est pas normal, peut etre une modification a fiare dans php.ini :-k ) en tout cas j'ai fait un test rapide est j'ai bien le résultat attendu.
Mais je ne peut t'aider plus sur ce sujet :oops:
si tu les veux en GET, tu es obligé de mettre ton formulaire en GET.
je demande une confirmation car cela m'embete (c'est un formulaire d'authetification)
dans ce cas vaut mieux eviter de passer les identifiants dasn l'adresse.

Tu ne peut pas mettre "module" et "action" dans des champs cachés et récupèrer par POST ?

EDIT:
un truc que j'ai pas indiquer "module" et "action" passe bien par l'url
de plus en plus étrange, les variables passent dasn l'url et tu récupère en POST ? :-k

par jeff » 26 oct. 2005, 16:43

un truc que j'ai pas indiquer "module" et "action" passe bien par l'url

par Invité » 26 oct. 2005, 16:22

bon j'ai refait des testes avec mon code
alors je suis d'acord avec TRUC
PHP:
<form action="index.php?module=auth&action=verif" method="POST">

donc tu récupère les variables "module" et "action" en GET => $_GET['module'] logiquement.

et les champs du formulaire "log" et "pass" en POST => $_POST['log']

en principe aucun probleme Think
mais je recupere tout en post

mais
si tu les veux en GET, tu es obligé de mettre ton formulaire en GET.
je demande une confirmation car cela m'embete (c'est un formulaire d'authetification)

par Truc » 26 oct. 2005, 14:28

oui effectivement j'avais pas tres bien compris la question, mais je vois pas le probleme.

tu as:
<form action="index.php?module=auth&action=verif" method="POST">
donc tu récupère les variables "module" et "action" en GET => $_GET['module'] logiquement.

et les champs du formulaire "log" et "pass" en POST => $_POST['log']

en principe aucun probleme :-k

par pjl » 26 oct. 2005, 12:52

si tu les veux en GET, tu es obligé de mettre ton formulaire en GET. Tu n 'as pas le choix.
en tout cas, ce code fonctionne :
<?php
print_r ($_GET);
echo '<p>';
print_r ($_POST);
?> 
<form action="<?php echo $_SERVER['PHP_SELF'] ?>?module=auth&action=verif" method="POST">
<fieldset><legend>authentification</legend>
<label>login<input type="text" name="log" value=""/></label><br/>
<label>mot de passe<input type="password" name="pass" value=""/></label>
<input type="submit" name="valider"/>
</fieldset>
</form>

par jeff » 26 oct. 2005, 10:09

je connais l'origne,
mon probleme c'est que je recupere les variables que je passe par l'url de l'action en post or je les voudrais en get :?

par pjl » 26 oct. 2005, 10:05

si tu peux.


et si tu ne connais pas à l'avance l'origine de tes variables, tu peux utiliser $_REQUEST.

par jeff » 26 oct. 2005, 09:26

je peut pas passer les parametres de mon action par get et mes valeur du formulaire par post??(et pourtant je suis de l'avoir deja fait)