suppression de session php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : suppression de session php

Re: suppression de session php

par ynx » 19 mai 2016, 17:30

Salut,

Effectivement le tableau contenant les éléments du panier n'est pas réordonnée lors de la suppression d'un élément, le parcours avec une boucle for déclenche donc une erreur lorsqu'on essaye d'accéder à l'élément venant d'être supprimé.

Une solution possible serait de réordonner les clés du tableau panier afin que ces clés soit toujours une suite de numéro successifs.

Une autre solution serait d'utiliser une boucle foreach afin de récupérer la clé de chaque élément du tableau à la place de la variable $i de la boucle for. Par exemple :
foreach ($_SESSION['panier']['detaille'] as $i => $detaille) {
?>
<table>
	<tr>
		<td><?php echo ($_SESSION['panier']['detaille'][$i]);  ?></td>
		<td><?php echo ($_SESSION['panier']['prix'][$i]); ?></td>
		<td><a href="sup.php?index=<?=$i?>">supprimer</a></td>
	</tr>
</table>
<?php
}
Bonne jorunée,

suppression de session php

par zafredo » 19 mai 2016, 17:01

bonjour j'ai créer un panier php avec les session tous fonctionne bien mais au niveau de la suppression j'ai un petit problème quand je supprime en commençant par le bas tous fonctionne bien mai quand je veux supprimer par le haut j’arrive a supprimer celui que je veux mais le suivant affiche l'erreur suivant

Notice: Undefined offset: 1 in D:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\e\votre panier.php on line 9

la je voulais supprimer le 2e produit voici mon code
<?php

session_start();

if(isset($_SESSION['panier']))

$panier=$_SESSION['panier'];

for($i=0;$i<count($_SESSION['panier']['detaille']);$i++){

?>

<table>

	<tr>

		<td><?php echo ($_SESSION['panier']['detaille'][$i]);  ?></td>

		<td><?php echo ($_SESSION['panier']['prix'][$i]); ?></td>

		<td><a href="sup.php?index=<?=$i?>">supprimer</a></td>

	</tr>

</table>

<?php

}

?>
et voici le fichier sup.php
<?php

session_start();

$index=$_GET['index'];

if(isset($_SESSION['panier'])){

	$panier=$_SESSION['panier'];

}else{

	$panier=array();

}

unset($panier['detaille'][$index]);

$_SESSION['panier']=$panier;

header('location:votre panier.php');

?>