probleme avec <input type=hidden name=

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 : probleme avec <input type=hidden name=

par Cyrano » 01 sept. 2005, 23:29

Tu as mis quoi dans la valeur de l'attribut method de tes balises <form> ?

par kochalski » 01 sept. 2005, 22:45

avec $var ça fonctionne mais pas avec $_POST

par Cyrano » 01 sept. 2005, 22:40

En utilisant $_POST ou directement ? Dans ce dernier cas, ça veut dire que le register_globals est à ON. Attention, il y a beaucoup d'hébergeurs qui l'ont laissé à OFF, ton script ne fonctionnerait donc pas. Et comme je te l'ai aussi mentionné, gare aux injections SQL et au piratage.

par kochalski » 01 sept. 2005, 22:32

j ai essayé ton script, il ne m affiche rien,
par contre avec $var ça fonctionne
$var = isset($_POST['annoFR']) ? $_POST['annoFR'] : ""; 

par Cyrano » 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.

par kochalski » 01 sept. 2005, 22:13

ok j essais de suite
merci

par kochalski » 01 sept. 2005, 22:11

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

par Cyrano » 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.

par kochalski » 01 sept. 2005, 22:08

je viens de regarder

le register_globals est à ON

par kochalski » 01 sept. 2005, 22:06

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

par Cyrano » 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.

par kochalski » 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 ??

par Truc » 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é ?!

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

par truc » 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