Un peu de logique résoud le problème :
1. en rappellant la session, un panier pourrait exister
2. si le panier n'existe pas : le déclarer vide
3. et dans les deux cas s'il y a demande d'ajout dans le panier : ajouter
Le code :
<?php
//Rappeller la session
session_start();
//si aucun panier, le déclarer vide
if(!isset($_SESSION['panier'])) $_SESSION['panier']=array();
//si ajout demandé : ajouter dans le panier
$prix=$_GET['prix'];
$ref=$_GET['ref'];
if ($ref && $prix) {
$_SESSION['panier'][]= array('ref' => '$ref','prix' => $prix,'qte'=>1);
}
?>
Pour la question du foreach, la variable utilisé doit être un tableau :Le code:
<?php
//Parcours du panier
if ( $_SESSION['panier'] && is_array($_SESSION['panier']) )
foreach ( $_SESSION['panier'] as $index=>$contenu ) {
//traitement
}
?>