probleme avec <input type=hidden name=

Eléphant du PHP | 108 Messages

01 sept. 2005, 18:32

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

ViPHP
ViPHP | 2144 Messages

01 sept. 2005, 18:34

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

Eléphant du PHP | 108 Messages

01 sept. 2005, 18:37

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

Eléphant du PHP | 108 Messages

01 sept. 2005, 18:46

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 ????

truc
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 18:52

tu peut peut-etre mettre des bouts de code des formulaires des différentes pages histoire qu'on puisse suivre ca correctement

Eléphant du PHP | 108 Messages

01 sept. 2005, 19:07

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' >"; 
?>
 
 

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

01 sept. 2005, 21:54

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é ?!

Eléphant du PHP | 108 Messages

01 sept. 2005, 22:03

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 ??

Mammouth du PHP | 19672 Messages

01 sept. 2005, 22:04

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 108 Messages

01 sept. 2005, 22:06

comment faire ??
il faut savoir que je récupere la variable sur la 2° page

Eléphant du PHP | 108 Messages

01 sept. 2005, 22:08

je viens de regarder

le register_globals est à ON

Mammouth du PHP | 19672 Messages

01 sept. 2005, 22:10

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 108 Messages

01 sept. 2005, 22:11

je dois le mettre sur OFF ou ON ?
et comment on fait ??? :oops:

Eléphant du PHP | 108 Messages

01 sept. 2005, 22:13

ok j essais de suite
merci

Mammouth du PHP | 19672 Messages

01 sept. 2005, 22:14

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: