[Réglé] Problème de variable avec 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 : [Réglé] Problème de variable avec GET

par blackm » 14 déc. 2007, 14:21

Merci je viens de trouver la solution. Il fallait que je place mon hidden input avant le select

Merci quand même ! :wink:

par Berzemus » 14 déc. 2007, 14:16

l'ordre n'a aucune importance.

par blackm » 14 déc. 2007, 14:12

Merci Ryle mais petite précision mon scripte se trouve déjà sur une page donc l'URL de départ est déjà

http://www.monsite.com/index.php?page=mapage sur laquelle j'ai donc le formulaire
Lorsque j'utilise :
<form name="form1" method="Get" action="<?php $_SERVER['PHP_SELF'];?>?page=mapage"> 
Ca ne marche pas http://www.monsite.com/index.php?page=mapage est systématiquement remplacé par http://www.monsite.com/index.php?champ=1

Par contre lorsque je passe par un input hiden j'ai bien la modif mais le mapage se place à la fin de l'url c'est a dire


http://www.monsite.com/index.php?champ=1&page=mapage au lieu d'avoir
http://www.monsite.com/index.php?page=mapage&champ=1

voici le code du formulaire
  <form method="Get" action=""><div align="center">
	   <select name="champ">
         <option value="0">Choisissez un championnat</option>
    <?php       
       $query = "SELECT ...";
       $result = mysql_query($query) or die (mysql_error());
           while ($row = mysql_fetch_array($result))
           {
		   	   echo ("<option value=\"$row[2]\">$row[0]\n $row[1]/". ($row[1]+1)."\n");
               echo ("</option>\n");
           }
       $button=ENVOI;
   ?>
        </select>
        <?php   
		  if (isset($value)){ echo "value=$value";echo "<input type=\"hidden\" name=\"type\" value=\"$value\">";}
	     ?>
        <input type="submit" value="<?php print $button; ?>"></div></form

par Ryle » 14 déc. 2007, 13:28

Il te faut effectivement renvoyer dans l'url les paramètres dont tu as besoin pour afficher la bonne page. Deux solution pour cela, les spécifier dans l'action du formulaire :
<form name="form1" method="Get" action="<?php $_SERVER['PHP_SELF'];?>?page=mapage">
Le <?php $_SERVER['PHP_SELF'];?> retournant en fait le nom de la page courrante, il n'est pas obligatoire, mais c'est plus propre de le mettre à mon avis :)

Soit le spécifier dans un champ caché du formulaire, puisque celui-ci est envoyé en get :

Code : Tout sélectionner

<input type="hidden" name="page" value="mapage" />
:)

[Réglé] Problème de variable avec GET

par blackm » 14 déc. 2007, 13:07

Bonjour,
Je suis debutant en PHP et j'ai un petit soucie avec le passage des variables avec la methode Get.
J'ai une page avec des liens du Types : http://www.monsite.com/index.php?page=mapage qui me permet de faire un include de chacune de mes pages dans l'index.php qui reste fixe.

J'ai un script php qui utilise la methode get dans un formulaire comme ceci :

Code : Tout sélectionner

<form name="form1" method="Get" action=""> <p> <select name="champ"> <option value="var1">var1</option> </select> <input type="submit" name="Submit" value="Envoyer"> </p> </form>
Mon soucie est que lorsque je passe les variables dans l'url j'arrive à une url de la forme suivante :

http://www.monsite.com/index.php?champ=var1

qui donne une page d'erreur puisque je devrais avoir normalement

http://www.monsite.com/index.php?page=mapage&champ=var1

Pour que l'include fonctionne. J'ai tout essayer à mon niveau mais à chaque fois il me remplace tout ce que je met après le ? pour me mettre champ=var1. Quelqu'un peut il m'aider ?

Merci