passage de parametre par post et get

Mammouth du PHP | 1311 Messages

25 oct. 2005, 15:47

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

25 oct. 2005, 15:49

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 ? :roll:

Mammouth du PHP | 1311 Messages

25 oct. 2005, 15:54

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 oct. 2005, 18:56

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 1311 Messages

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)

ViPHP
pjl
ViPHP | 2119 Messages

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.

Mammouth du PHP | 1311 Messages

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

ViPHP
pjl
ViPHP | 2119 Messages

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>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

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)

Mammouth du PHP | 1311 Messages

26 oct. 2005, 16:43

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 1311 Messages

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 1311 Messages

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