Page 1 sur 2
passage de parametre par post et get
Posté : 25 oct. 2005, 15:47
par jeff
salut
j'ai un petit probleme avec le passage par post et get
j'utise dans mes pages ce type de d'url
Code : Tout sélectionner
http://localhost/projet_ing/index.php?module=auth&action=verif
je les recupere par Get et c'est nickel
maintant j'ai un formulaire
Code : Tout sélectionner
<form action="index.php?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>
et la je recupere toutes les variable en post (module et verif egalement)
or j'ai besion que celle ci soit en get pour mes verifications
comment je peut faire
Posté : 25 oct. 2005, 15:49
par charabia
Quelles genres de vérifications veux-tu faire ? Je pense que c'est tout à fait possible de le faire par la méthode POST aussi.
Un peu plus de détails ?

Posté : 25 oct. 2005, 15:54
par jeff
en fait avant de faire quoique ce soit je recupere les variables qui sont passées par l'url dont "module"
et je verifie l'existance du module et la facon dont on y fait appel
le fichier xml qui sert a la verif
Code : Tout sélectionner
<Bibliotheque>
<module methode="get" user="internaute" url="">Init</module>
<module methode="get" user="internaute" url="">Erreur</module>
<module methode="get" user="internaute" url="">produit</module>
<module methode="get" user="internaute" url="">actu</module>
<module methode="get" user="internaute" url="">auth</module>
<module methode="get" user="jeff" url="">admin</module>
</Bibliotheque>
et le code de verif
if(isset($_GET['module']))
$multiaction_controller=addslashes(trim($_GET['module']));
else
{
$multiaction_controller='Init';
$_SESSION['login']='internaute';
$_SESSION['auth']='ok';
$_SESSION['level']='internaute';
}
try
{
#lecture du fichier action.xml
$xml= new ActionXml();
$xml->SetFic('config/action.xml');
#verifications des modules
$var=array('module'=>$multiaction_controller,'methode'=>strtolower($_SERVER['REQUEST_METHOD']));
foreach ($_REQUEST as $cle=>$val)
{echo $cle.'-'.$val.'-'.$_SERVER['REQUEST_METHOD'].'<br/>';}
if($xml->VerifAction($var))
j'espere que c'est claire
Posté : 25 oct. 2005, 18:56
par Truc
Salut, je suis pas trop xml
mais pour récupèrer les donnée d'un formulaire il avec GET suffit de remplacer method="POST" dans le formulaire par method="GET".
parcontre tous les champs y passerons
a toi de voir si c'est important ou pas
Posté : 26 oct. 2005, 09:26
par jeff
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)
Posté : 26 oct. 2005, 10:05
par pjl
si tu peux.
et si tu ne connais pas à l'avance l'origine de tes variables, tu peux utiliser $_REQUEST.
Posté : 26 oct. 2005, 10:09
par jeff
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

Posté : 26 oct. 2005, 12:52
par pjl
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>
Posté : 26 oct. 2005, 14:28
par Truc
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

Posté : 26 oct. 2005, 16:22
par Invité
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)
Posté : 26 oct. 2005, 16:43
par jeff
un truc que j'ai pas indiquer "module" et "action" passe bien par l'url
Posté : 26 oct. 2005, 16:45
par Truc
mais je recupere tout en post
effectivement c'est pas normal, peut etre une modification a fiare dans php.ini

) 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
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 ?

Posté : 26 oct. 2005, 16:48
par jeff
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/>';}
c'est un comportement normal??
Posté : 26 oct. 2005, 17:10
par Truc
j'ai la meme chose, parcontre je ne peut récupèrer les variables passées dans l'url avec POST:

echo $_GET['module']; .... OK

echo $_POST['module'], .... ERREUR
fait le test

Posté : 26 oct. 2005, 17:14
par jeff
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