ne ps perdre un champ valide lors d'un post en php

ne ps perdre un champ valide lors d'un post en php - PHP - Programmation

Marsh Posté le 14-06-2005 à 09:38:41    

:jap: bonjour a tous :jap: ...
 
 
en gros sa doit faire la 3 eme fois que j'essaie d'avoir une reponse a cette question et sans grand resultat...desolé d'etre lourd mais je suis vraiment bloqué... je souhaiterai just savoir comment réafficher des données rentré dans un formulaire( php), car comme vous le savez pour récupérer des données on utilise la methode post ou get qui efface les données saisis dans les champs..de ce faite comment faire pour que les champ qui sont bon reste intact!!!ou plus qu ils ne disparaissent pas!! de maniere a ne pas les rattaper....  j'espere avoir ete assez claire  
 
merci bcp pour votre aide... :jap:  :jap:  :jap:

Reply

Marsh Posté le 14-06-2005 à 09:38:41   

Reply

Marsh Posté le 14-06-2005 à 09:44:10    

?? je vois pas vraiment la difficulté.
 
Lors du click sur ton bouton submit, tu appelles une page qui va traiter les informations de ton formulaire.
Il suffit de placer dans des variables tous les champs qui sont ok. Tu nommes ces variables, par exemple, $ok_login, $ok_city, ...
 
Par défaut elles sont vides, et tu leur donne la valeur passée en $_POST par l'utilisateur si la valeur est correcte.
 
Ensuite il suffit d'afficher ces variables dans tes champs grace aux attributs de balises value="".
Si c'est pour un textarea, il faut <textarea name...>$ok_montexte</textarea>
 
Soit j'ai vraiment pas compris ce que tu veux, soit c'est excessivement simple

Reply

Marsh Posté le 14-06-2005 à 09:44:32    

Code :
  1. <input type="text" name="monchamps" value="<?php echo $_POST['monchamps'] ?>">

Reply

Marsh Posté le 14-06-2005 à 09:47:22    

Salut,
 
dans la partie du code où tu traite les données en provenance du formulaire, tu teste si la valeur saisie est valide, si oui tu la stocke dans une variable de session.  
 
Si redirection il y a vers le formulaire, tu teste si la variable de session est définie, si oui tu l'affiche dans le champs correspondant.
 

Code :
  1. <?php
  2. if(!empty($_SESSION['truc'])) { $form['truc']=$_SESSION['truc']; } else { $form['truc']=''; }
  3. <input type="text" name="truc" id="truc" value=<?php echo $form['truc']; ?>" />

Reply

Marsh Posté le 14-06-2005 à 10:07:58    

Worldofdada a écrit :

?? je vois pas vraiment la difficulté.
 
Lors du click sur ton bouton submit, tu appelles une page qui va traiter les informations de ton formulaire.
Il suffit de placer dans des variables tous les champs qui sont ok. Tu nommes ces variables, par exemple, $ok_login, $ok_city, ...
 
Par défaut elles sont vides, et tu leur donne la valeur passée en $_POST par l'utilisateur si la valeur est correcte.
 
Ensuite il suffit d'afficher ces variables dans tes champs grace aux attributs de balises value="".
Si c'est pour un textarea, il faut <textarea name...>$ok_montexte</textarea>
 
Soit j'ai vraiment pas compris ce que tu veux, soit c'est excessivement simple


 
 
non ce n'est pas si simple autrement je pense que je serai vraiment un tres mauvais codeur!!
lorsque je vais ce que tu dis voici ce que j obtient:
 
<br /><b>Notice</b>:  Undefined index:  ste in <b>c:\program files\easyphp1-8\www\inscription.php</b> on line <b>49</b><br />
 

Reply

Marsh Posté le 14-06-2005 à 10:11:04    

j_lecruel a écrit :

Salut,
 
dans la partie du code où tu traite les données en provenance du formulaire, tu teste si la valeur saisie est valide, si oui tu la stocke dans une variable de session.  
 
Si redirection il y a vers le formulaire, tu teste si la variable de session est définie, si oui tu l'affiche dans le champs correspondant.
 

Code :
  1. <?php
  2. if(!empty($_SESSION['truc'])) { $form['truc']=$_SESSION['truc']; } else { $form['truc']=''; }
  3. <input type="text" name="truc" id="truc" value=<?php echo $form['truc']; ?>" />



 
 
ok les variable de sessions doit etre la solution cependant j'utilise easyphp et voici les message d'erreur que j'obtient :
 
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1-8\www\inscription.php:9) in c:\program files\easyphp1-8\www\inscription.php on line 54
 
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\inscription.php:9) in c:\program files\easyphp1-8\www\inscription.php on line 54
 
 
je ne sais pas a quoi cela correspond...

Reply

Marsh Posté le 14-06-2005 à 10:24:04    

Tu dois placer ton session_start() avant l'envoi des headers (donc apparement avant la ligne 9).

Reply

Marsh Posté le 14-06-2005 à 10:25:38    

tu recuppere ou les donnes de ton formulaire?dans une base de donnee ou sur un autre formulaire?
donne nous aussi ton code.

Reply

Marsh Posté le 14-06-2005 à 10:26:42    

sur une autre page pardon pas sur un autre formulaire

Reply

Marsh Posté le 14-06-2005 à 10:47:47    

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>Document sans titre</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6. </head>
  7. <div>
  8. <?
  9. $base=mysql_connect("localhost","XXX","xxx" );
  10. $session_start();
  11. if((!empty($_POST["mot"]))&&(!empty($_POST["pass"])))
  12. {
  13.             if($_POST["mot"]==NULL)
  14.             {print "champ vide";}
  15.             if($_POST["pass"]==NULL)
  16.             {print "champ vide";}
  17. [...]//ici il y requette etc rien a voir avec le sujet  
  18. }
  19. mysql_close($base);
  20. ?>
  21. </div>
  22. <body>
  23. <form  method="post">
  24. <table width="295" height="194" border="0">
  25.   <tr>
  26.     <td height="62" colspan="6"> Connection à une base de donnée.</td>
  27.   </tr>
  28.   <tr>
  29.     <td width="125" height="24">Code Clients : </td>
  30.     <td width="160"><input name="mot" type="text" ></td>
  31.   </tr>
  32.   <tr>
  33.     <td height="24" >Mot de passe:</td>
  34.     <td><input name="pass" type="password"  ></td>
  35.   </tr>
  36.  
  37.   <tr>
  38.   <td height="43" colspan="2"  align="center">
  39.   <input type="submit" size="18" name="envoyer"  value="envoyer" ></td>
  40.  
  41.   </tr>
  42. </table>
  43. </form>
  44. </body>
  45. </html>


 
c'est du code test d'une page que j'ai fais pour commencer...

Reply

Marsh Posté le 14-06-2005 à 10:47:47   

Reply

Marsh Posté le 14-06-2005 à 10:55:23    

ATTENTION !!!! Ton session start doit etre avant tout, meme pas un espace devant ni rien qui gène :  

Code :
  1. <?php
  2.     session_start();
  3. ?>


 
en début de code, ça enlèvera déjà ton erreur de sessions...

Reply

Marsh Posté le 14-06-2005 à 10:57:16    

Et ce topic il te plaisait plus? :??:
http://forum.hardware.fr/hardwaref [...] 2192-1.htm


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-06-2005 à 11:00:33    

lol je me suis posé la même question... ^^ :)

Reply

Marsh Posté le 14-06-2005 à 11:02:43    

micfont999 a écrit :

lol je me suis posé la même question... ^^ :)


 
 
désolé  :ange:

Reply

Marsh Posté le 14-06-2005 à 11:06:00    

non meme en mettant session_start au debut g les 2 erreurs...pfff :pt1cable:  
sa vien peut etre d'easy php tout simplement peut etre qu il faut que je jette un oeil sur php.ini??? :??:

Reply

Marsh Posté le 14-06-2005 à 11:07:25    

rohh normalement sur easy php les sessions sont activée dés le début.. Que donne le php info??

Reply

Marsh Posté le 14-06-2005 à 11:09:29    

micfont999 a écrit :

rohh normalement sur easy php les sessions sont activée dés le début.. Que donne le php info??


 
le php info? :heink:  

Reply

Marsh Posté le 14-06-2005 à 11:10:16    

zit_zit a écrit :

non meme en mettant session_start au debut g les 2 erreurs...pfff :pt1cable:  
sa vien peut etre d'easy php tout simplement peut etre qu il faut que je jette un oeil sur php.ini??? :??:


Tu n'a bien RIEN DU TOUT, PAS MEME UN ESPACE avant?:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-06-2005 à 11:13:29    

skeye a écrit :

Tu n'a bien RIEN DU TOUT, PAS MEME UN ESPACE avant?:o


 
 
ba g un espace <?[ici]session_start(); mais si je colle contre le ? sa fou la merde enfin sa ne reconnais pas un ouverture de script :bounce:  

Reply

Marsh Posté le 14-06-2005 à 11:14:27    

zit_zit a écrit :

ba g un espace <?[ici]session_start(); mais si je colle contre le ? sa fou la merde enfin sa ne reconnais pas un ouverture de script :bounce:


 
avant le <?, évidemment, pas avant session_start()...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-06-2005 à 11:17:02    

skeye a écrit :

avant le <?, évidemment, pas avant session_start()...:o


 

Code :
  1. <?php session_start();
  2. $base=mysql_connect("localhost","xxx","xxx" );


 
voici le code tel ... et les message d'erreur avec:
 
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1-8\www\test_base_donnee.php:8) in c:\program files\easyphp1-8\www\test_base_donnee.php on line 9
 
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\test_base_donnee.php:8) in c:\program files\easyphp1-8\www\test_base_donnee.php on line 9
 
 :cry:  :cry:

Reply

Marsh Posté le 14-06-2005 à 11:17:14    

Alors la session est merdique et ne récupère rien..

Reply

Marsh Posté le 14-06-2005 à 11:18:07    

Donne la ligne9 et un peu avt un peu après please ::: de 6 à 12 on va dire ... :)

Reply

Marsh Posté le 14-06-2005 à 11:18:31    

Il y a vraiment uniquement ça dans ton fichier? :heink:


Message édité par skeye le 14-06-2005 à 11:18:38

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-06-2005 à 11:18:39    

micfont999 a écrit :

Alors la session est merdique et ne récupère rien..


 
 
ok et ...du coup je fais koi?? :??:

Reply

Marsh Posté le 14-06-2005 à 11:26:07    

zit_zit a écrit :

ok et ...du coup je fais koi?? :??:


 
Je viens de te le dire ^^  
Donne voir ton code de la ligne 6 à 12 please..
Merki :)  :D  

Reply

Marsh Posté le 14-06-2005 à 11:26:48    

(moi je veux tout le code, pas seulement 5/6 lignes.:o)


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-06-2005 à 11:30:58    

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>Document sans titre</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6. </head>
  7. <div>
  8. <?php session_start();
  9. $base=mysql_connect("localhost","fredo","fred" );
  10. if((!empty($_POST["mot"]))&&(!empty($_POST["pass"])))
  11. {
  12.  mysql_select_db("test" );
  13.  $heur=date("G\:i\:s",time());
  14.  $requette= "insert into rens values('".$_POST["mot"]."','".$_POST["pass"]."','".date("j-m-Y" )."','"
  15.  .date("G\:i\:s",time())."')";
  16.  mysql_query($requette,$base)or die("mauvaise requette".mysql_error());
  17. }
  18. else
  19. {print "il faut remplir tout les champs";}
  20. mysql_close($base);
  21. ?>
  22. </div>
  23. <body>
  24. <form  method="post">
  25. <table width="295" height="194" border="0">
  26.   <tr>
  27.     <td height="62" colspan="6"> Connection à une base de donnée.</td>
  28.   </tr>
  29.   <tr>
  30.     <td width="125" height="24">Code Clients : </td>
  31.     <td width="160"><input name="mot" type="text" ></td>
  32.   </tr>
  33.   <tr>
  34.     <td height="24" >Mot de passe:</td>
  35.     <td><input name="pass" type="password"  ></td>
  36.   </tr>
  37.  
  38.   <tr>
  39.   <td height="43" colspan="2"  align="center">
  40.   <input type="submit" size="18" name="envoyer"  value="envoyer" ></td>
  41.  
  42.   </tr>
  43. </table>
  44. </form>
  45. </body>
  46. </html>


 
 
 
voila tout mon code ba bien complexe... :bounce:

Reply

Marsh Posté le 14-06-2005 à 11:32:03    

ESPECE DE GROS BOULET§§§§§§§§§§§§§§§§§§§!!
 
ON A DIT RIEN DU TOUT AVANT§§§§§§§§§§§


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-06-2005 à 11:32:30    

(oui, j'avoue m'énerver un peu, mais je le voyais venir gros comme une maison...[:dawa])


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-06-2005 à 11:34:28    

MDR ::: du calmeeee...

Code :
  1. <?php session_start(); ?>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  3. <html>
  4. gnagnagna..


 
Voila comment procédé..
Quand on te disai avant c'est avant toute forme de vie extraterrestre (eu désolé je débloque, lol ) non mais plus sérieusement avant tout code de ta page... ^^
Voila :)

Reply

Marsh Posté le 14-06-2005 à 11:34:35    

Rien du tout, ça veut aussi dire pas de  

Citation :


# <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
# <html>
# <head>
# <title>Document sans titre</title>
# <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
# </head>
# <div>


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-06-2005 à 11:36:28    

skeye a écrit :

Rien du tout, ça veut aussi dire pas de  

Citation :


# <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
# <html>
# <head>
# <title>Document sans titre</title>
# <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
# </head>
# <div>



 
Bo c'est pas génant, peu etre pour le DOCTYPE, mais la suite ne dérange pas..  
 

Reply

Marsh Posté le 14-06-2005 à 11:38:58    

micfont999 a écrit :

Bo c'est pas génant, peu etre pour le DOCTYPE, mais la suite ne dérange pas..


on parie?[:dawa]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-06-2005 à 11:42:00    

+1 , tous avec skeye !
 
RIEN avant un session_start didiou !


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 14-06-2005 à 11:43:54    

plainsofpain a écrit :

+1 , tous avec skeye !
 
RIEN avant un session_start didiou !


 
Crévindieu, mais je dit la même chose de ce coté la...
Mais après remettre le code html de base ne pose pas de problème, en tout cas ça ne m'en à jamais posé..  :sweat:

Reply

Marsh Posté le 14-06-2005 à 11:44:12    

plainsofpain a écrit :

+1 , tous avec skeye !
 
RIEN avant un session_start didiou !


 
On notera au passage qu'il a la réponse sous les yeux depuis hier et qu'il aurait pu s'il avait un tout petit peu essayé de comprendre se démerder tout seul...:o
 
http://forum.hardware.fr/forum2.ph [...] 5#t1118075


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-06-2005 à 11:45:37    

micfont999 a écrit :

Crévindieu, mais je dit la même chose de ce coté la...
Mais après remettre le code html de base ne pose pas de problème, en tout cas ça ne m'en à jamais posé..  :sweat:


 
[:urd]
Tu as dû mal comprendre mon post. J'ai aps dit qu'écrire <html> etc. posait problème, j'ai dit que le faire avant session_start posait problème, même si la balise <?php n'était pas encore ouverte.


Message édité par skeye le 14-06-2005 à 11:48:15

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-06-2005 à 11:45:51    

lol il devait etre fatigué...

Reply

Marsh Posté le 14-06-2005 à 11:46:55    

skeye a écrit :

(oui, j'avoue m'énerver un peu, mais je le voyais venir gros comme une maison...[:dawa])


 
 
 
ok t enrve pas... :sweat: mais ou ??? de koi tu parle excuse moi  :sweat:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed