Problème avec des Variables de Session sous Free - PHP - Programmation
Marsh Posté le 20-06-2005 à 13:09:56
texaff a écrit : dans ton foreach faut pas mettre $_SESSION['panier']?? |
exemple
Code :
|
Marsh Posté le 20-06-2005 à 14:05:18
oui, pardon, j'ai bien mis '$_SESSION['panier']'
et j'ai aussi créé le dossier session
en fait, j'arrive à énumérer les variables $_SESSION, mais je n'arrive pas à accéder aux variables stockées dans $_SESSION['panier'] ($_SESSION['panier'] est en fait un tableau
Marsh Posté le 20-06-2005 à 16:54:21
satch1042 a écrit : mais je n'arrive pas à accéder aux variables stockées dans $_SESSION['panier'] ($_SESSION['panier'] est en fait un tableau |
remontre ton code
Marsh Posté le 20-06-2005 à 17:25:40
voici le bout de code où le crée le tableau :
if(!isset($_SESSION['panier']))
$_SESSION['panier'] = array();
if(isset($_SESSION['panier'][$idproduit]))
$_SESSION['panier'][$idproduit]++;
else
$_SESSION['panier'][$idproduit] = 1;
est-ce que je déclare mal le tableau?
Marsh Posté le 20-06-2005 à 17:28:12
je dis ptete une connerie mais on a le droit de modifier les variable de session comme ca??
moi j'aurai utilisé un session_register ou un truc du genre!
Marsh Posté le 20-06-2005 à 17:31:47
$idproduit est un numéro d'article dans la base de données, passé par POST. j'exécute ce script quand j'ajoute un article dans le caddie.
ensuite, au moment d'énumérer le contenu du caddie, je fais :
if(!isset($_SESSION['panier']))
$_SESSION['panier'] = array();
Marsh Posté le 20-06-2005 à 17:34:38
texaff a écrit : je dis ptete une connerie mais on a le droit de modifier les variable de session comme ca?? |
en tout cas ça marche avec la version d'easyPHP actuelle (donc PHP 4.3.10)
sous free il y a les versions 4.3.10 et 5.0.3 (d'ailleurs, c'est possible, ça? deux version en même temps?)
Marsh Posté le 20-06-2005 à 17:41:54
oui enfait j'ai di une connerie
pour les versions il suffit d'aplé tes fichiers
index.php
ou
index.php3
ou
index.php4
alors tu sera en version 4.3.10
et si tes fichiers sont de la forme
index.php5
alors tu seras en php5
Marsh Posté le 20-06-2005 à 17:48:10
oki! merci pour l'info sur les version de PHP!
j'ai vu que $_SESSION est bien présent depuis PHP4.0.6 (c'est la nouvelle appellation de $HTTP_SESSION_VARS), donc dans tous les cas c'est sensé marcher...
Marsh Posté le 20-06-2005 à 17:50:14
t'a essayer de faire ca genre pour le panier 43 :
$variable = $_session['panier'];
ensuite
$variable[43]++;
$_session['panier']= $variable ;
ca parait un peu con mais moi javais ce genre de probleme quand je voulais inserer dans une fonction un tablo a double entrée...
Marsh Posté le 21-06-2005 à 09:55:15
j'ai essayé mais ça ne fait rien.
en fait j'ai l'impression que ma variable ne reste pas un tableau à double entrée... quand j'exécute une première fois ce code:
if(isset($_SESSION['panier'][$idproduit]))
$_SESSION['panier'][$idproduit]++;
else
$_SESSION['panier'][$idproduit] = 1;
...c'est le else qui est exécuté : normal
mais après, impossible d'énumérer le tableau, et la deuxième fois, c'est à nouveau le else qui est exécuté, et j'obtiens l'erreur "Cannot use a scalar value as an array", alors que le tableau n'a pas été réinitialisé
Marsh Posté le 21-06-2005 à 10:30:41
j'ai fait des gettype un peu partout... dans le script qui ajoute le produit, la variable $_SESSION['panier'] est bien un array.
lorsque le script qui affiche la panier (avec le foreach) est exécuté, $_SESSION['panier'] est de type resource.
et lorsque je reviens au premier script pour ajouter un autre produit, il se transforme en integer....................
Marsh Posté le 21-06-2005 à 10:43:28
j'ai trouvé d'ou venais le problème :
ma variable de session changeais de type dès que je me connectais à une base de données. je faisais $panier = connect_db(); (un fonction perso) alors que ma variable de session était $_SESSION['panier']...... susceptibles, chez free quand même!!
merci pour votre aide en tout cas!
Marsh Posté le 20-06-2005 à 12:33:23
Bonjour!
J'ai un petit problème avec des variables de session de type 'tableau' sous free :
pour implémenter un caddie, j'utilise une variable de session $_SESSION['panier'] de type array.
Je stocke ensuite chaque produit de la manière suivante : $_SESSION['panier']['43'] ou encore $_SESSION['panier']['50'] ou 43 et 50 sont les numéros des produits
Le problème se produit lorsque je veux enumérer la liste des produits.
J'utilise un foreach($_SESSION as $produit => quantite) mais j'obtient une erreur "Invalid argument supplied for foreach()...."
DE même, lorsque je veux ré-accéder à une de ces variables (pour l'incrémenter par exemple), j'obtien l'erreur : "Cannot use a scalar value as an array"
Je précise que ce même code fonctionne farpaitement en local avec EasyPHP (mise à jour).
Il semble que ce problème ne se produise qu'avec des tableaux à double entrée.
Si vous pouvez m'aider à résoudre ce problème, ça serait sympa!