lagombe
Messages postés45Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 mars 2008
-
21 oct. 2005 à 09:10
lagombe
Messages postés45Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 mars 2008
-
21 oct. 2005 à 16:07
Bonjour,
Tout d'abord une grand merci à arnal69130 pour sa source qui marche à
merveille, si ce n'est un petit souci : je m'explique : j'ai un
formulaire en POST, qui envoie les infos à une feuille intermédiaire
qui transforme les $_POST en $_SESSION (encore merci à arnal ;-)), qui
vérifie la saisie et qui bascule selon la validité de cette saisie soit
sur la suite, soit qui me ramène à mon formulaire où les $_SESSION vont
être utilisés pour valeur par défaut de mes champs. Du coup, je suis
obligé de vider les variables de SESSION à la fin de la page pour
éviter que mon utilisateur, lors d'une nouvelle saisie sur mon form se
retrouve avec ses valeurs par défaut. Jusque là ça fonctionne, sauf que
dans le système où je vais intégrer ces feuilles je passe en SESSION
d'autres variables donc notamment le login utilisateur. Quel est le
moyen le plus simple pour vider les $_SESSION qui m'intéressent sans
toucher aux autres, en évitant par exemple une boucle fastidieuse qui
testerait les clés des $_SESSION?
En espérant avoir été clair... merci pour vos futures participations...
monoceros01
Messages postés420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 21 oct. 2005 à 14:37
Mouahahah FhX t'as lu dans mes pensées :p (mais j'ai eu la flemme sur
le coup parce qu'il aurait fallut comme je vais le faire expliquer
comment construire le formulaire html pour avoir la même structure dans
la variable $_POST que ce que tu as décris)
donc lagombe faut faire un truc comme ça :
<form method="post" action="plop.php">
</form>
et le code de ton mentor ;p te donnera ce qu'a écrit FhX =)
lagombe
Messages postés45Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 mars 2008 21 oct. 2005 à 09:39
Les vider une par une... ça risque d'être un peu long et confus... vu
le nombre de varaibles de SESSION que je vais me trimbaler avec le
script d'arnal69130... et je voulais éviter le foreach mais on est
d'accord, je crois que ce sera difficile... ;-)
lagombe
Vous n’avez pas trouvé la réponse que vous recherchez ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 21 oct. 2005 à 09:54
Hello,
y a pas, faut boucler sur les variables à effacer.
Néanmoins, si l'idée de monoceros est très bonne (je parle de la 2de), j'éviterais de boucler sur un substr() en plus. A la place, j'utiliserais un autre tableau, dans lequel je stockerais index à effacer. Puis je bouclerai sur ce tableau, pour effacer les index correspondants dans $_SESSION.
bref :
$AEffacer = array ('sup','supagain');
$_SESSION['sup'] = 'A effacer';
$_SESSION['supagain'] = 'A effacer aussi';
$_SESSION['keep'] = 'A garder;
foreach ($AEffacer as $supr) {
unset ($_SESSION[$supr]);
}
L'inconvénient est qu'au lieu d'une simple règle de nommage, tu te trimballes un tableau en plus, et qu'il faut le mettre à jour si tu modifies des formulaires dans ton code.
lagombe
Messages postés45Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 mars 2008 21 oct. 2005 à 14:20
oui mais ça, ça marche pas dans mon cas, puisque je passe par une
boucle foreach pour faire passer les $_POST sur des $_SESSION (cf. le
code de arnal69130 http://www.phpcs.com/code.aspx?id=24433)...
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 21 oct. 2005 à 15:56
Nan mais c'est tout bête ! Jvois pas ce que y'a de compliqué la dedand !
Ta boucle d'origine était :
"
<ol>
<li>if (!empty($_POST)) </li><li> { </li><li> foreach($_POST as $cle=>$val) </li><li> { $_SESSION[$cle]=$val; } </li><li> <var>unset</var>($_POST); </li><li> }"</li>
</ol>
Comme je rajoute un tableau dans $_SESSION[], ca va donner ca :
<?php
if ( !empty($_POST) ) {
foreach ($_POST as $cle=>$val) {
$_SESSION['temp'][$cle] = $val;
}
unset($_POST);
}
?>
Elle est ou la difficulté la dedand ? Rajouter 'temp' ?!
lagombe
Messages postés45Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 mars 2008 21 oct. 2005 à 15:56
OK, nickel j'ai tout compris... même si je me fais un peu chambré sur
le coup... mais bon... c'est de bonne guerre... en attendant merci pour
les post ;-)