Garder en memoire les champs d'un formulaire... - PHP - Programmation
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
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?
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
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
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)
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
Marsh Posté le 07-09-2005 à 23:44:03
Lis le lien qu'on t'a donné.
Marsh Posté le 08-09-2005 à 23:14:32
Ba oui mais je comprend pas pk il n'est pas bon de faire cela
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.
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?