Page 1 sur 2
probleme avec <input type=hidden name=
Posté : 01 sept. 2005, 18:32
par kochalski
Bonsoir,
j'ai 4 pages pour creer une annonce.
Dans la 1° page , j ai un champ textarea 'création de l annonce'
J'ai installé un champ hidden afin de récuperer la variable jusqu'à ma 4° page.
le soucis est que , quand je met un submit, la variable suit jusqu'à la 2° page puis plus rien.
1° page
Code : Tout sélectionner
<textarea name="annoFR" cols="60" rows="12" id="annoFR" ></textarea><? echo "$annoFR" ?></textarea>
2° page
echo"<input type=hidden name=annoFR value='$annoFR' >";
Pouvez vous m aider !!
Merci
Francis
Posté : 01 sept. 2005, 18:34
par iclo
Il faut récuperer les vairiables avec $_POST ou $_GET en fonction de la méthode du formulaire, plus d'infos dans la FAQ :
http://www.phpfrance.com/forums/voir_sujet-37.php
Posté : 01 sept. 2005, 18:37
par kochalski
merci pour la réponse,
mais ma version easyphp est 1.6
1.7 ou 1.8 je ne connais pas, donc je ne me sert pas de ces variables, je pense meme que cela ne doit pas marcher sur ma version
Posté : 01 sept. 2005, 18:46
par kochalski
J ai fait comme vous m avez dit, mais là à la 3° page il me manque les 3/4 de l annonce que j ai ecrit ????
Posté : 01 sept. 2005, 18:52
par truc
tu peut peut-etre mettre des bouts de code des formulaires des différentes pages histoire qu'on puisse suivre ca correctement
Posté : 01 sept. 2005, 19:07
par kochalski
Donc voilà mes morceaux de code, je l'ai simplifié. Tous les messages d'erreur n'y sont pas. je pense que cela devrait faire l affaire.
1° page
<form name="form" method="post" action="export_creer2_annonce.php">
<textarea name="annoFR" cols="60" rows="12" class="Style37" id="annoFR" ></textarea><? echo "$annoFR" ?></textarea></textarea>
</form>
2° page
<form name="form" method="post" action="export_creer3_annonce.php">
<?PHP
echo"<input type=hidden name=annoFR value='$annoFR' >";
?>
</form>
3° page
<form name="form" method="post" action="export_creer3_annonce.php">
<?PHP
echo"<input type=hidden name=annoFR value='$annoFR' >";
if($err==0){
echo "<meta http-equiv='refresh' content='0 url=export_confirm_creation.php? annoFR=$annoFR ' >";
}
?>
</form>
4° page
<?PHP
$db_connection=mysql_connect('localhost','root','');
$db=mysql_select_db("test2");
$db_base=mysql_create_db('test2');
$exists = mysql_query("SELECT 1 FROM message LIMIT 0");
if (!$exists){
$create="CREATE TABLE message(m text)";
mysql_query($create);
}
$inserer="INSERT INTO message VALUES('$annoFR')";
mysql_query($inserer);
echo "enregistrement effectué";
echo"<input type=submit name=annoFR value='$annoFR' >";
?>
Posté : 01 sept. 2005, 21:54
par Truc
ce code me parrait correct ds l'idée ...
sauf est ce que tu est sur de ne pouvoir utiliser les vaiable $_POST['annoFR'] comme il t'a été conseilé ?!
Posté : 01 sept. 2005, 22:03
par kochalski
oui je l ai fait j ai fait un test avec $_POST['annoFR'] il ne m affiche que les 3/4 de mon message
mais j ai remarqué que si je ne mettais pas d accent dans le message, ça fonctionnait parfaitement. est ce là le probleme ??
Posté : 01 sept. 2005, 22:04
par Cyrano
ce code me parrait correct ds l'idée ...
sauf est ce que tu est sur de ne pouvoir utiliser les vaiable $_POST['annoFR'] comme il t'a été conseilé ?!

Si le register_globals est à OFF, il est obligé de s'en servir, sinon, impossible de récupérer les variables de la page précédente.
Posté : 01 sept. 2005, 22:06
par kochalski
comment faire ??
il faut savoir que je récupere la variable sur la 2° page
Posté : 01 sept. 2005, 22:08
par kochalski
je viens de regarder
le register_globals est à ON
Posté : 01 sept. 2005, 22:10
par Cyrano
En début de script da chaque page:
<?php
$var = isset($_POST['var']) ? $_POST['var'] : "";
//...suite
?>
En clair, soit la variable est présente dans la super globale $_POST et on initialise une variable avec dont tu te sers ensuite pour compléter la valeur de ton champ caché, soit la variable est absente et ton champ caché aura une valeur vide. Mais si tu ne récupères pas ta valeur comme ça et que tu veux utiliser directement $var sans utiliser $_POST['var'] alors tu n'auras rien du tout.
Posté : 01 sept. 2005, 22:11
par kochalski
je dois le mettre sur OFF ou ON ?
et comment on fait ???

Posté : 01 sept. 2005, 22:13
par kochalski
ok j essais de suite
merci
Posté : 01 sept. 2005, 22:14
par Cyrano
La directive register_globals est à OFF par défaut depuis la version 4.2 de PHP pour des raisons de sécurité essentiellement. Aver la directive à ON, tu dois faire particulièrement attention à ton code pour éviter les injections SQL parce que des fausses variables pourraient être envoyées via l'url.
Donc laisse-là à OFF et ajoute l'initialisation de tes variables à partir des super-globales.