Garder en memoire les champs d'un formulaire...

Garder en memoire les champs d'un formulaire... - PHP - Programmation

Marsh Posté le 07-09-2005 à 01:05:11    

Bonsoir à tous,
Le titre ne doit pas à première vu être très explicite...
Bon, j'ai à ma disposition un formulaire (assez important à remplir), certain champ sont vérifiés par le php mais lorsque un champ est mal renseignée, une erreur explique le champ manquant.
Mais le problème, c'est que j'aimerais que l'ont ne soit pas obligé de tout retapé et que les champs renseignées auparavants soit affichés.
 
Faut-il utiliser les $_SESSION pour arriver à régler le problème?
Les $_SESSION c'est bien beau mais si je souhaite refaire le formulaire plusieurs fois (Renseignement clients) les valeurs du formulaire précédant sont affichés (dans le cas ou le formulaire à été ajoutée correctement) or je souhaire un formulaire vide.
Peut etre existe-t-il une autre fonction?

Reply

Marsh Posté le 07-09-2005 à 01:05:11   

Reply

Marsh Posté le 07-09-2005 à 01:16:46    

tu peut mettre les valeurs en session puis passé ces valeurs dans les value de tes champs, une fois que la validation est correcte les supprimés comme cela pour ton prochain formulaire tu n'aura pas les anciennes valeurs

Reply

Marsh Posté le 07-09-2005 à 10:22:09    

Merci pour la réponse car ceci m'intéresse egalement et c'est vrai que j'avais pas penser au session.
 
Donc si j'ai bien compris
 
mettre en value les session mais seulement si elle existe c ca?
et une fois le formulaire renseigné supprimer les session. Bon cela ne devrait pas etre trop compliqué a mettre en oeuvre.
Cependant moi dans mon cas j'aurais deja des session qui circule est ce que l'on peut choisir les variables de session à supprimer?
Et d'ailleur comment fait on pour supprimer une variable de session?

Reply

Marsh Posté le 07-09-2005 à 10:26:12    

Les variables de session c'est un tableau ( $_SESSION) qui est accessible sur toutes les pages.
Pour en setter une : $_SESSION['mavar'] = 'trucAEnregistrer';
Pour la "detruire" $_SESSION['mavar'] = '';
ou $_SESSION['mavar'] = null; (je suis plus sur a 100% que ça marche)
 
Si tu veux virrer tout le tableau = $_SESSION = array();
Et voila il est vide


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 07-09-2005 à 10:52:27    

oki par contre j'ai quelques soucis avec les sessions
Puisque en faite mon formulaire une fois ok il ferme toute les sessions or je veux garder les sessions "utilisateur" celle ki me permette de l'identifier durant sa connexion.
J'ai pourtant bien déclaré  
 
session_register("form" );
$_SESSION['form'] = array ("section" => $_POST['section'], "titre" => $_POST['titre'], "description" => $_POST['description']);
  if($_SESSION['form']['titre'] == "" ){
  header("Location:ajout_upload.php?erreur=titre" );
  }
 else if($_SESSION['form']['section'] == "" ){
  header("Location:ajout_upload.php?erreur=section" );
  }
 else if($_SESSION['form']['description'] == "" ){
  header("Location:ajout_upload.php?erreur=description" );
  }
else {
$ajout_form = sprintf("INSERT INTO util (section, titre, description) VALUES ('".$_SESSION['form']['section']."', '".$_SESSION['form']['titre']."', '".$_SESSION['form']['description']."'" );
  mysql_select_db($database_dbprotect, $dbprotect);
    $result = mysql_query($ajout_upload, $dbprotect) or die(mysql_error());
  session_unset("form" );
  header("location:ajout_form.php?ajout=reussi" ); }
 
Si ca provoque une erreur ok ca marche mais une fois que l'enregistrement est fait dans la base de donnée il ferme toute les sessions je me retrouve donc à l'index qui me precise une erreur de session...
merci de m'éclairer


Message édité par cvex le 07-09-2005 à 10:54:06
Reply

Marsh Posté le 07-09-2005 à 12:06:55    

il faut plus utiliser session register, il faut controler les données postées par l'utilisateur avant de les mettre dans la session (question de secu). session_unset ne doit pas etre utilisé avec les $_SESSION (http://php.benscom.com/manual/fr/function.session-unset.php)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 07-09-2005 à 23:20:09    

Ba comment je peux faire alors si je peux pas fermer la session du form :s

Reply

Marsh Posté le 07-09-2005 à 23:44:03    

Lis le lien qu'on t'a donné. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 08-09-2005 à 23:14:32    

Ba oui mais je comprend pas pk il n'est pas bon de faire cela

Reply

Marsh Posté le 08-09-2005 à 23:29:32    

C'est pas une question d'être bon ou pas bon, c'est une question d'avoir un code à jour avec les normes. session_unset marche peut-être encore mais n'est pas recommandé. Utilise unset.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

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