Page 1 sur 1

suppression de session php

Posté : 19 mai 2016, 17:01
par zafredo
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');

?>

Re: suppression de session php

Posté : 19 mai 2016, 17:30
par ynx
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,