Problème de passage de variable

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 : Problème de passage de variable

par Ryle » 12 janv. 2007, 17:22

Ah tiens, c'est vrai que j'ai pas pensé à la priorité quand j'ai décrit l'action... l'opérateur "&" est prioritaire sur le "=" du coup le code équivalait à :
$nom = ( $_REQUEST["texte"] & $nom2 ) = $_REQUEST["texte2"]
et tu ne pouvais avoir de valeur...

Ceci dit, puisqu'il ne s'agit là que d'une affectation de valeur en php, c'est troublant et sans intérêt de coller ça au milieu d'une balise html, le onClick ne sert à rien. Ceci serait tout aussi efficace et beaucoup plus clair :
<?php
$nom = $_REQUEST["texte"];
$nom2 = $_REQUEST["texte2"];
?>
<form name="form1" method="post" action=""> 
  <p align="center" class="Style1"><span class="Style2">Veuillez saisir le nom</span> 
    <INPUT TYPE=text NAME=texte VALUE="<?php echo $nom; ?>"> 
  <p align="center" class="Style1"><span class="Style2">Veuillez saisir le nom de jeune fille</span> 
    <INPUT TYPE=text NAME=texte2 VALUE="<?php echo $nom2; ?>"> 
  <p align="center" class="Style1"> 
    <input name="sub" type="image" onClick="" src="../button.gif" width="115" height="23" border="0">
</form>
Et à la limite tu peux tout aussi bien virer le onClick qui ne sert à rien :)


@abricot : $_REQUEST est une variable super globale comme $_GET ou $_POST, mais qui contient les données de ces deux tableaux (avec priorité pour les données passées en post si je me souviens bien)
Le onClick ne sert absolument à rien, quant à l'input, le type image équivaut au type submit (avec une image au lieu d'un bouton) et sert à soumettre le formulaire :)

par FRANCK45 » 12 janv. 2007, 17:04

ça y es j'ai trouvé en faite c'etait tout con
onClick="<?php $nom2=$_REQUEST["texte2"] ; $nom=$_REQUEST["texte"] ?>" 
Et oui juste un point virgule.

Merci
Bonne soirée et bon week-end a vous tous et bon codage!!!!!!!!!!!!!!!!!!

par abricot » 12 janv. 2007, 17:03

Salut,

J'ai une question, c'est quoi la fonction de $_REQUEST svp?
Si non en ce qui concerne ton code j'ai du mal à comprendre à quoi sert cette ligne car je ne vois pas d'echo :

<input name="sub" type="image" onClick="<?php $nom2=$_REQUEST["texte2"]&$nom=$_REQUEST["texte"] ?>" src="../button.gif" width="115" height="23" border="0">

par FRANCK45 » 12 janv. 2007, 16:53

Voici le formulaire :
<form name="form1" method="post" action="">
  <p align="center" class="Style1"><span class="Style2">Veuillez saisir le nom</span>
    <INPUT TYPE=text NAME=texte VALUE="<?php echo $_REQUEST["texte"]; ?>">
  <p align="center" class="Style1"><span class="Style2">Veuillez saisir le nom de jeune fille</span>
    <INPUT TYPE=text NAME=texte2 VALUE="<?php echo $_REQUEST["texte2"]; ?>">
  <p align="center" class="Style1">
  
    <input name="sub" type="image" onClick="<?php $nom2=$_REQUEST["texte2"]&$nom=$_REQUEST["texte"] ?>" src="../button.gif" width="115" height="23" border="0">
     </form>

En en dessus de ce formulaire j'utilise les variables tout simplement en fesant appel a celui ci par $nom ou $nom2.

Mais comme j'ai redis precedemment la deuxiemme variable inscrite marche mais pas la premiere. Dans ce cas par exemple j'ai que $nom qui marche.

merci

par Ryle » 12 janv. 2007, 16:46

Faudrait que tu nous montre un peu plus de code... fais voir ton formulaire html, et la partie du script php qui récupère les données du formulaire :)

par FRANCK45 » 12 janv. 2007, 16:42

ben la en faite cela ne marche plus du tout.
Pour l'ecriture que j'ai fait en premier c'est à dire
<input name="sub" type="image" onClick="<?php $nom=$_REQUEST["texte"]&$nom2=$_REQUEST["texte2"] ?>" src="../button.gif" width="115" height="23" border="0"> 
que je mette $nom2 ou $nom en premier ou en deuxieme, c'est toujours la deuxieme variable qui fonctionne.
merci

par Ultim4T0m » 12 janv. 2007, 16:32

Et bien procède de la manière dont Ryle parle, à savoir :
<input name="sub" type="image" src="../button.gif" width="115" height="23" border="0">
<input type="hidden" name="nom" value="<?php echo $_REQUEST['texte'];?>" />
<input type="hidden" name="nom2" value="<?php echo $_REQUEST['texte2'];?>" />
Cela passera les variables $_REQUEST['texte'] et $_REQUEST['texte2'] à la page de destination de ton formulaire (<form action="...">)

par FRANCK45 » 12 janv. 2007, 16:25

bon en faite j'ai deux champs, le nom et nom de jeune fille. La personne peut saisir soit l'un soit l'autre quand elle clique sur rechercher cela lui affiche les personne correspondante.

Cela fonctionnait très bien auparavent mais j'ai été obliger d'ajouter le champ nom de jeune fille et du coup plus rien marche.

Et losque je fait un echo de mes variable cel ane cfonctinne pas du tout.

merci

par Ultim4T0m » 12 janv. 2007, 16:05

Oki merci bien ;)

J'utilise toujours hidden pour ce genre de chose, c'est plus propre et plus simple.

par Ryle » 12 janv. 2007, 16:02

Ce serait donc plutôt (mais je n'en sais pas grand chose, je n'ai jamais utilisé onClick ^^) :
onClick="nom=<?php echo $_REQUEST['texte'] ?>&nom2=<?php echo $_REQUEST['texte2'] ?>"
En fait le onClick correspond à l'action du clic sur l'élément.. il faut donc spécifier une action javascript a exécuter derrière (appel de fonction, mise à jour d'un champ, changement d'url, ..)

Le mieux si le but est de récupérer les paramètres dans le formulaire, serait de les passer en champ hidden :
<input type="hidden" name="nom" value="<?php echo $_REQUEST['texte'];?>" />
<input type="hidden" name="nom2" value="<?php echo $_REQUEST['texte2'];?>" />

par Ryle » 12 janv. 2007, 15:58

Pas d'echo, pas de chaine, pas d'action... juste une affectation et un opérateur logique, le html généré par ce code donne ceci :

Code : Tout sélectionner

<input name="sub" type="image" onClick="" src="../button.gif" width="115" height="23" border="0">
Ce code :
$nom = $_REQUEST["texte"] & $nom2 = $_REQUEST["texte2"] 
- affecte $_REQUEST["texte"] à $nom
- affecte $_REQUEST["texte2"] à $nom2
- compare bit-à-bit avec l'opérateur ET ces deux valeurs

et c'est tout... Je ne sais pas ce que tu attends, mais je doute que ce soit cela :)

par Ultim4T0m » 12 janv. 2007, 15:57

Ce que tu fais dans ta partie PHP, ce sont deux affectations. Je doute que ce soit ce que tu veuilles vraiment faire (avec l'opérateur &, qui est il me semble l'opérateur ET sur les bits)

Bref...

Tu veux qu'en cliquant sur le bouton, les variables nom et nom2 prennent pour valeur $_REQUEST['texte'] et $_REQUEST['texte2']

Ce serait donc plutôt (mais je n'en sais pas grand chose, je n'ai jamais utilisé onClick ^^) :
onClick="nom=<?php echo $_REQUEST['texte'] ?>&nom2=<?php echo $_REQUEST['texte2'] ?>"
( pas testé, juste d'instinct, je dirais ça, attendons l'avis d'un plus grand ^^ )

Problème de passage de variable

par FRANCK45 » 12 janv. 2007, 15:48

Bonjour,

Voila lorsque j'ai se code, il y a que la deuxième variable qui est prise en compte. L'autre je ne connait pas la valeur.
<input name="sub" type="image" onClick="<?php $nom=$_REQUEST["texte"]&$nom2=$_REQUEST["texte2"] ?>" src="../button.gif" width="115" height="23" border="0">
Comment modifier mon code pour qu'il marche.

Merci d'avance