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 07/05/2011, 20h35   #1
Invité de passage
 
Inscription : juillet 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 10
Points : 0
Points : 0
Par défaut Créer une variable de session si elle n'existe pas

Bonjour,
J'ai un petit soucis sur lequel je planche depuis des heures sans en trouver la solution !

Pour un système de panier j'ai besoin de (pré)stocker en session les frais de port de chaque produit.

Pour être concret, je souhaite faire la chose suivante:

Ma variable $_SESSION['ship'] doit retourner un array() avec id du produit en KEY et le montant des frais de port en VALUE.

Si $_SESSION['ship'][id du produit] n'existe pas == on crée cette variable
Si $_SESSION['ship'][id du produit] existe == rien à faire

Voici mon code actuel qui fonctionne à qui me retourne une erreur

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
 
    for ($i=0, $n=sizeof($products); $i<$n; $i++) {
 
	$id = $products[$i]['id'];
 
	$shippingCost = getShippingCost($id); // calcul le montant des frais de port du produit
        $shippingMethods = getShippingMethods($id); // récupère les modes de livraison valables pour ce produit
	$methods = explode(";", $shippingMethods); // retourne "spu" pour Sur Place et "flat" pour Colissimo 
 
 
	if( $_SESSION['ship'] && (!in_array($id, array_keys($_SESSION['ship'])))  ) { // je pense que l'erreur vient d'ici !?
 
		if( (in_array('flat', $methods)) && (in_array('spu', $methods)) ) { 
			$_SESSION['ship'][$id] = $shippingCost;
 
		} elseif( (!in_array('flat', $methods)) && (in_array('spu', $methods)) )  {
			$_SESSION['ship'][$id] = 0;
 
		} elseif( (in_array('flat', $methods)) && (!in_array('spu', $methods)) )  {
			$_SESSION['ship'][$id] = $shippingCost;
 
		} else { 								  
			$_SESSION['ship'][$id] = 0;
		}
 
	}
Merci par avance !
Augustule est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 05h29   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Utilise isset()
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 17h46   #3
Invité de passage
 
Inscription : juillet 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 10
Points : 0
Points : 0
Citation:
Envoyé par sabotage Voir le message
Utilise isset()
Merci !
Augustule est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h48.


 
 
 
 
Partenaires

Hébergement Web