[php]suppression de variable de session

woodstock -  
 zoro -
Bonjour,

je n'arrive pas à générer un code ( et oui je suis débutant) qui me permettrait de supprimer des variables de sessions.

En fait j'ai un premier formulaire avec des cases à cocher et à l'appel de la page suivante je veux supprimer toutes les variables de sessions qui ont un id différent de celui coché (en gros conserver les variables cochées).

Pour le moment j'ai juste reussi à supprimer mes variables de sessions des cases cochées.......or je veux faire l'inverse

Voici mon code:
//suppression des lignes non cochées
if (isset($_POST['choix'])) {
    for ($i = 0, $c = count($_POST['choix']); $i < $c; $i++) {
		  array_splice($_SESSION['panier'], $_POST['choix'][$i], 1);
} 
}

Si quelqu'un peut me donner une idée de code pour faire ca

merci
A voir également:

5 réponses

fiddy Messages postés 11653 Statut Contributeur 1 847
 
Salut

Je sais pas si le lien suivant va t'aider mais je te le donne quand même :
https://cyberzoide.developpez.com/php4/faqsession/#unset
0
woodstock
 
salut,

merci pour le lien mais en fait la suppression de mes cases à cocher ce fait bien c surtout que je ne voi pas comment selectionner les variables correspondant aux cases non cochées....pour les supprimer
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
la boucle for que tu fais ne parcourt que les cases cochées ? Peut-être que ce que tu veux faire est impossible car seules les cases cochées démarrent une variable de session.
0
woodstock
 
En fait j'ai un formulaire dans une page avec ce code:
for ($i=0; $i < count($_SESSION['panier']); $i++)
	{
	echo '<tr><td>'.$_SESSION['panier'][$i]['produit'].'</td>
	<td><input type="text" name="qte_'.$i.'"></td>
	<td>'.$_SESSION['panier'][$i]['prix'].'</td>
	<td><input type="checkbox" name="choix[]" value="'.$i.'" checked="checked" ></input> </td> </tr>';									 
}


et je veux dans mon autre page supprimer les variables de sessions qui n'ont pas le meme id que les cases sélectionnées..

Je pense que c'est possible à faire non?
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Ah, je comprends mieux.

foreach($_SESSION as $cle => $valeur) {
// $valeur tu parcours toutes les variables de sessions
}
0
woodstock > fiddy Messages postés 11653 Statut Contributeur
 
Désolé mais je comprend pas tout.....

T'as boucle foreach me permet de sélectionner toutes les sessions qui ont été cochées c ca?
Et pour supprimer celles non cochées?
0
fiddy Messages postés 11653 Statut Contributeur 1 847 > fiddy Messages postés 11653 Statut Contributeur
 
la boucle foreach va parcourir toutes les variables de sessions existantes. Après à toi de faire des tests pour connaitre si ce sont les cases non cochées lors d'une itération et supprimer le cas échéant
0
woodstock
 
Bonsoir,

voila j'ai essayer de changer mon code, de tout faire et ca ne marche toujours pas!!!!je n'arrive pas a supprimer ces variables .

Donc je met mon nouveau code si quelqu'un a une idée....
//on met le status à un pour les valeurs cochées
if (isset($_POST['choix'])) {
for ($j=0; $j < count($_POST['choix']); $j++){
$id = $_POST['choix'][$j];
$_SESSION['panier'][$id]['statut']='1';
}
//suppression des lignes non cochées	
for ($j = 0; $j <count($_SESSION['panier']); $j++) {
//si la variable existe
if (isset($_SESSION['panier'][$j])){
//et que son status est à 0
		if( $_SESSION['panier'][$j]['statut']=='0'){
		//on supprime la variable
		unset($_SESSION['panier'][$j]);
		 //array_splice($_SESSION['panier'], $_POST['choix'][$i], 1);
		}
		}
		}


voila ceci est juste un bout de code de la page qui recoit les informations du formulaire qui contient les cases à cocher.

Merci pour votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zoro
 
bonjour à toutes et à tous, voila je suis entrain de develloper un site de vente en ligne et puis je suis arriver sur le panier, mon probleme c'est la suppression j'arrive à supprimer mais par exemple quand je supprime une ligne ça me supprime celle du dessous.
si vous avez des solutions à me fournir merci de votre comprehension.
0