Php et les formulaires

Fermé
Steff - 29 août 2003 à 12:13
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 - 2 sept. 2003 à 23:43
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

7 réponses

PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
29 août 2003 à 14:58
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
29 août 2003 à 15:04
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
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
29 août 2003 à 15:20
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
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
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 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
2 sept. 2003 à 23:43
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