Php et les formulaires

Steff -  
PhP Messages postés 1774 Statut Membre -
Bonjour


Désolé mais je vais encore vous embêter avec une question fatalement, bête.

Voilà j'ai un formulaire :
<form action="mo_form.php" method="post" name="EnvoForm">
        <input type="Hidden" name="IdLivre" value="2">
</form>

Dans mo_form.php, j'écris echo $_POST["$IdLivre"]; et là page blanche, quelle énorme erreur ais-je fait?

Quelqu'un peut-il me renseigner ?

Merci
Cordialement
Steff
http://www.c-comnet.com
A voir également:

7 réponses

PhP Messages postés 1774 Statut Membre 606
 
Bonjour Steff

Dans ton exemple la page mo_form.php récupère bien la valeur du champ dans la variable IdLivre qui vaut normalement 2.

L'accès à cette variable peut effectivement se faire via le tableau superglobal $_POST[]

Cependant comme tu utilises des guillemets doubles, PHP opère alors une substitution

Comme PHP (sauf paramètrage contraire) a également créé la variable $IdLivre

$_POST["$IdLivre"] équivaut à $_POST["2"] qui lui n'est peut être pas défini.


Pour récuperer le contenu de IdLivre tu peux écrire :

$_POST[IdLivre] ou $_POST["IdLivre"] ou encore $_POST['IdLivre'] ou utiliser directement $IdLivre (moins sécurisé).

Ex :

<html>
<body>

$IdLivre=<? echo $IdLivre; ?><br>
$IdLivre=<? echo "$IdLivre"; ?><br>
$IdLivre=<? echo '$IdLivre'; ?><br>
$_POST[IdLivre]=<? echo $_POST[IdLivre]; ?><br>
$_POST['IdLivre']=<? echo $_POST['IdLivre']; ?><br>
$_POST["IdLivre"]=<? echo $_POST["IdLivre"]; ?><br>
$_POST["$IdLivre"]=<? echo $_POST["$IdLivre"]; ?><br>
$_POST['$IdLivre']=<? echo $_POST['$IdLivre']; ?><br>
</body>
</html>


Tu noteras que les 2 dernières syntaxes ne renvoient rien !

Nota : seuls les guillemets doubles (") entrainent la substitution.
Avec des guillemets simples (') la chaîne est traitée telle quelle.

@+

PhP    [Push the button,Don't push the
.         button,Trip the station,Change the channel]
0
Utilisateur anonyme
 
Salut,

<form action="mo_form.php" method="post" name="EnvoForm">
        <input type="Hidden" name="IdLivre" value="2">
</form>


Le Input type=submit manquant, c'est volontaire ?

Kalamit,
Parle à ma culasse, mon carter est malade. :)
0
Steff
 
Bonjour

merci pour les réponses.

voici le résultat de

<html>
<body>

$IdLivre=<? echo $IdLivre; ?><br>
$IdLivre=<? echo "$IdLivre"; ?><br>
$IdLivre=<? echo '$IdLivre'; ?><br>
$_POST[IdLivre]=<? echo $_POST[IdLivre]; ?><br>
$_POST['IdLivre']=<? echo $_POST['IdLivre']; ?><br>
$_POST["IdLivre"]=<? echo $_POST["IdLivre"]; ?><br>
$_POST["$IdLivre"]=<? echo $_POST["$IdLivre"]; ?><br>
$_POST['$IdLivre']=<? echo $_POST['$IdLivre']; ?><br>
</body>
</html>

=>

$IdLivre=
$IdLivre=
$IdLivre=$IdLivre
$_POST[IdLivre]=
$_POST['IdLivre']=
$_POST["IdLivre"]=
$_POST["$IdLivre"]=
$_POST['$IdLivre']=

Quant au fait qu'il n'y ait pas de submit : je submit le formulaire par un javascript car je donne via le javascript la valeur à IdLivre.

Ayez pitié, aidez un mec désespéré.

Merci
Cordialement
Steff
0
Utilisateur anonyme
 
Quant au fait qu'il n'y ait pas de submit : je submit le formulaire par un javascript car je donne via le javascript la valeur à IdLivre.

Bah, il est surement la ton probleme !
Mets un submit bidon pour tester. Tu verras si ca fonctionne ou pas. :)

Kalamit,
Parle à ma culasse, mon carter est malade. :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
steff
 
Bonjour

Un miracle de la science, sans doute, désormais avec $_POST['IdLivre'] je récupère ma valeur. Merci à tous pour votre aide.

Merci
Cordialement
0
Steff
 
Bonjour

J'ai un petit formulaire. Je récupère bien mes données.

Sauf que lorsque j'écris un contenu du genre Jungle's Book dans ma page récapitulative j'obtiens Jungle\'s Book et quand je repasse de ma page récapitulative à mon formulaire j'obtiens Jungle\\\'s Book. Avant que je me tire une balle, quelqu'un peut-il m'aider?

Merci
Cordialement
Steff
0
PhP Messages postés 1774 Statut Membre 606
 
Bonsoir Steff,


Normal car PHP "escape" les variables passées par GET ou POST
(du moins lorsque le paramètre magic_quotes_gpc est activé , ce qui est le cas par défaut : à vérifier cependant)

Bref si on passe une variable nommée demo contenant "Jungle's book"
alors
<?echo $demo; ?> affiche Jungle\'s book

Pour avoir un affichage correcte il suffit d'enlever les slashs :
<? echo stripslashes($demo); ?> affiche Jungle's book

Faire également attention à ce que les variables ne contiennent pas non plus de code HTML (sauf si c'est voulu) !

@+

PhP    [Push the button,Don't push the
.         button,Trip the station,Change the channel]
0