Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/07/2011, 11h18   #1
Invité de passage
 
Inscription : août 2009
Messages : 50
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 50
Points : 2
Points : 2
Par défaut Probleme ajout au panier

Bonjour

J'ai un probleme la fonction ajout au panier ne fonctionne pas bien et il me semble que c'est un problème de session.
Sur se site hybride-test11.com lorsque j'ajoute un article au panier la focntion marche bien j'ai bien le message alert pour me dire que le produit à été ajouté et effectivement dans mon panier en haut à droite j'ai un article, mais le probleme c'est que lorsque je change de catégorie ou de page le panier se remet à 0 et sur d'autre page j'ai bien mon panier à 1 article.

Quelqu'un pourrati til me donner une piste ou chercher ? Merci d'avance
Voici le code de la page cart

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
<?php
	// Attribution d'un n° de caddie au client potentiel
	//if (!isset($_SESSION['cart'])) $_SESSION['cart'] = "cart-".substr($_SERVER['REMOTE_ADDR'],0,8).random(10); echo $_SESSION['cart'];
 
	session_start();
 
    // Vide le panier (action utilisateur : click sur lien Vider)
	if (strpos($thisPageUrl, "-llemptycart")>0) $_SESSION['cart'] = null;
 
	if (trim($_SESSION['cart'])===",") $_SESSION['cart'] = null;
	if (strpos($_SESSION['cart'], ',')===0) $_SESSION['cart'] = substr($_SESSION['cart'], 1);
 
	// Si achat d'un article
	if (isset($_GET['llbuy']))
	{
		$buyObj = trim($_GET['llbuy']);  // Identifiant uid de l'objet acheté	
 
		$cart = $_SESSION['cart'];
		if ($cart)
			{
				$items = explode(',',$cart); //echo $cart; print_r($items);
				if (!in_array($buyObj, $items)&&($buyObj!=null)) $cart .= ','.$buyObj;
			}
		  else
			$cart = $buyObj;
 
		$_SESSION['cart'] = $cart;
	}
 
	function writeShoppingCart() 
                {
			$cart = $_SESSION['cart'];
 
			if (!$cart) {
				return '<p>Panier vide</p>';
			} else {
				// Parse the cart session variable		
				$items = explode(',',$cart);
				$s = (count($items) = 1) ? 's':'';
				return '<p><a href="?shopcart=true"><b>Mon Panier ('.count($items).')</b></a></p>';
			}
		}
 
?>
 
<fieldset class="cart">
 
	<div style="padding:10px 3px 3px 3px; width: 100px; height: 30px;" align="center">
		<img src="../../../../cart.jpg" width="26" height="20" align="left" /><?php echo writeShoppingCart(); ?>
	</div>
</fieldset>
<br/>
nanou22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 12h00   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
les deux premieres lignes, heureusement qu'elles sont commentées parce qu'à cet endroit c'est criminel.

faire un var_dump($_SESSION); juste apres session start est une bonne solution.



pour être precis je ferai ceci:
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
session_start();
function myVarDump(&$var)
{
echo '<pre>';
var_dump($_SESSION);
echo '</pre>';
}
if ( isset($_GET['DEBUG']))
{
myVarDump($_SESSION);
}
 
//tout mon code
// fin du document 
myVarDump($_SESSION);
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 12h06   #3
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
Code :
1
2
3
4
5
6
7
8
9
10
if (strpos($thisPageUrl, "-llemptycart")>0 or (trim($_SESSION['cart'])===",") )
{ 
echo "vide panier";
$_SESSION['cart'] = null;
}
if (strpos($_SESSION['cart'], ',')===0)
{
 $_SESSION['cart'] = substr($_SESSION['cart'], 1);
 echo "truc bizarre";
}
si tu es obligé d'avoir ce genre de truc c'est que ton appli est plutot crade... bon courage pour la maintenance... d'autant plus que tu pourait stocker des objet complexe dans $_SESSION['cart'] comme des tableaux (ou des objets qui peuvent surcharger __sleep() et __wakeup()) ... pas que des chaines... d'ailleurs $_SESSION est déjà un tableau !
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 12h43   #4
Invité de passage
 
Inscription : août 2009
Messages : 50
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 50
Points : 2
Points : 2
Par défaut Merci de ton aide

Ce n'est pas pas qui est moi qui est ce code c'est un webmaster et justement je voudrais le corriger car il y a des bug sur le système de panier j'ai l'impression qu'il ne garde pas en mémoire le nombre de produit en focntion de l'utilisateur enfin bon je suis d'accord avec toi pour la qualité du code mais pourrait tu m'aider à avoir un ode pour le panier qui fonctionne ? Merci d'avance
nanou22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h38.


 
 
 
 
Partenaires

Hébergement Web