Salut
J'ai testé le premier code qui me donne exactement la meme valeur que le produit selectionné c'est a dire :
Kebab 5
Addition = 5
Et quand je clique sur une autre image
Pizza 6
Addition = 6
Ton navigateur est donc configuré pour ne pas accepter les cookies alors que ton serveur est configuré pour avoir l'id de session en cookies. Il y a moyen de configurer ton serveur pour une parfaite transparence $_GET/$_POST. Sinon il faut mettre un peu la main dans le code pour gérer les sessions.
$nom = ini_get('session.name');
if(!empty($_REQUEST[$nom])) session_id($_REQUEST[$nom]);
session_start();
Devrait suffire pour récupérer l'id de session en $_REQUEST même si le serveur est configuré en cookies... malheureusement il faut ajouter soi-même le SID aux liens $_GET ou au formulaire $_POST... par exemple mon code initial devient
<?php
$nom = ini_get('session.name');
if(!empty($_REQUEST[$nom])) session_id($_REQUEST[$nom]);
session_start();
if(!empty($_GET['reset']) && $_GET['reset']==1) $_SESSION['liste'] = serialize(array());
$plat = isset($_GET['plat']) ? $_GET['plat'] : '';
$prix = isset($_GET['prix']) ? (float)$_GET['prix'] : 0;
$liste = isset($_SESSION['liste']) ? unserialize($_SESSION['liste']) : array();
if($plat&&$prix) $liste[] = array('plat'=>$plat, 'prix'=>$prix);
if(count($liste)) {
$_SESSION['liste'] = serialize($liste);
$total = 0;
foreach($liste as $i=>$choix) {
echo htmlentities($choix['plat']), ' ', $choix['prix'], '<br/>';
$total += $choix['prix'];
}
echo '<b>Addition = ', $total, '</b><hr/>';
}
?>
<a href="?<?php echo htmlentities(SID); ?>&plat=Kebab+Pain&prix=5.99">Kebab Pain</a><br/>
<a href="?<?php echo htmlentities(SID); ?>&plat=Gros+Kebab&prix=6.79">Gros Kebab</a><br/>
<a href="?<?php echo htmlentities(SID); ?>&plat=Tarte+au+Citron&prix=3.49">Tarte au Citron</a><br/>
<hr/>
<a href="?<?php echo htmlentities(SID); ?>&reset=1">Réinitialiser Achats</a>
Il y a des echo dans les <a> à la fin pour conserver manuellement l'id de session.
Je vais essayer de montrer ce que j'ai fais :
Une partie du code Html
<a href="index.php?plat=Kebab Pain&prix= 5"><img src="./images/kebab/kebabpain.jpg" alt="Kebab Pain" title="Kebab Pain" width="100px" height="100px"/></a>
<a href="index.php?plat=Assiette Kebab&prix= 7"><img src="./images/kebab/asskebab.jpg" alt="Assiette Kebab" title="Assiette Kebab" width="100px" height="100px"/></a>
a href="index.php?plat=Kebab Crêpe&prix= 5"><img src="./images/kebab/kebabcre.jpg" alt="Kebab Crêpe" title="Kebab Crêpe" width="100px" height="100px"/></a>
<a href="index.php?plat=Miche Kebab&prix= 5,5"><img src="./images/kebab/michekebab.jpg" alt="Miche Kebab" title="Miche Kebab" width="100px" height="100px"/></a>
J'ai donc 4 plats
On m'a proposer de faire une session puis de faire une boucle pour afficher une liste des produit et de cette liste faire le total du prix:
<?php
session_start();
$plat = $_GET['plat'] ;
$prix = $_GET['prix'] ;
if(isset($_SESSION['meschoix'])){
$arrChoix = $_SESSION['meschoix'];
}else{
$arrChoix = array();
}
$arrChoix[] = array('plat' => $plat,'prix ' => $prix);
$_SESSION['meschoix'] = $arrChoix ;
print_r($_SESSION['meschoix']);
$total = 0;
foreach($_SESSION['meschoix'] as $P){
if(isset( $P['prix']) && $P['prix']!='' {
$Pprix = $P['prix'];
else{
$P['prix']=0;
}
echo "<br> plat : ".$P['plat']. " prix : ".$Pprix ;
$total += $Pprix;
}
echo " Le total est de : ".$total;
?>
Malheureusement cela ne marche pas
Pour le Javascript c'est gentil mais il faut que j'utilise du PHP dans mon projet donc ...

J'ai modifié un peu ton code en essayant de conserver ta manière de faire. Il faut faire attention aux espaces inutiles qui sont parfois ajoutés, par exemple array('plat'=>$plat, 'prix '=>$prix) n'est pas la même chose que array('plat'=>$plat, 'prix'=>$prix).
<?php
$nom = ini_get('session.name');
if(!empty($_REQUEST[$nom])) session_id($_REQUEST[$nom]);
session_start();
if(!empty($_GET['plat'])) {
$plat = $_GET['plat'];
}else{
$plat = '';
}
if(!empty($_GET['prix'])) {
$prix = str_replace(',', '.', trim($_GET['prix']));
}else{
$prix = '';
}
if(!isset($_SESSION['meschoix'])){
$_SESSION['meschoix'] = array();
}
if(!empty($plat)&&!empty($prix)) {
$_SESSION['meschoix'][] = array('plat' => $plat,'prix' => $prix);
}
print_r($_SESSION['meschoix']);
$total = 0;
foreach($_SESSION['meschoix'] as $P){
if(isset($P['prix']) && $P['prix']!='') {
$Pprix = $P['prix'];
}else{
$Pprix = 0;
}
echo "<br> plat : ".$P['plat']. " prix : ".str_replace('.', ',',$Pprix);
$total += $Pprix;
}
echo " Le total est de : ".str_replace('.', ',', $total);
?>
<hr/>
<a href="?<?php echo htmlentities(SID); ?>&plat=Kebab Pain&prix= 5"><img src="./images/kebab/kebabpain.jpg" alt="Kebab Pain" title="Kebab Pain" width="100px" height="100px"/></a>
<a href="?<?php echo htmlentities(SID); ?>&plat=Assiette Kebab&prix= 7"><img src="./images/kebab/asskebab.jpg" alt="Assiette Kebab" title="Assiette Kebab" width="100px" height="100px"/></a>
<a href="?<?php echo htmlentities(SID); ?>&plat=Kebab Crêpe&prix= 5"><img src="./images/kebab/kebabcre.jpg" alt="Kebab Crêpe" title="Kebab Crêpe" width="100px" height="100px"/></a>
<a href="?<?php echo htmlentities(SID); ?>&plat=Miche Kebab&prix= 5,5"><img src="./images/kebab/michekebab.jpg" alt="Miche Kebab" title="Miche Kebab" width="100px" height="100px"/></a>
Bonne chance