Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1505 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec des Variables de Session sous Free

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec des Variables de Session sous Free

n°1125126
satch1042
Posté le 20-06-2005 à 12:33:23  profilanswer
 

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!

mood
Publicité
Posté le 20-06-2005 à 12:33:23  profilanswer
 

n°1125141
texaff
Posté le 20-06-2005 à 12:57:48  profilanswer
 

dans ton foreach faut pas mettre $_SESSION['panier']??

n°1125153
nada71
Posté le 20-06-2005 à 13:09:56  profilanswer
 

texaff a écrit :

dans ton foreach faut pas mettre $_SESSION['panier']??


exemple

Code :
  1. foreach ($coul as $val)

n°1125172
nonau57
Posté le 20-06-2005 à 13:28:30  profilanswer
 

as tu créer le dossier "session" a la racine de ton site

n°1125197
satch1042
Posté le 20-06-2005 à 14:05:18  profilanswer
 

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

n°1125363
soju
One shot !
Posté le 20-06-2005 à 16:54:21  profilanswer
 

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

n°1125395
satch1042
Posté le 20-06-2005 à 17:25:40  profilanswer
 

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?

n°1125400
texaff
Posté le 20-06-2005 à 17:28:12  profilanswer
 

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!

n°1125405
satch1042
Posté le 20-06-2005 à 17:31:47  profilanswer
 

$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();

n°1125409
satch1042
Posté le 20-06-2005 à 17:34:38  profilanswer
 

texaff a écrit :

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!


 
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?)

mood
Publicité
Posté le 20-06-2005 à 17:34:38  profilanswer
 

n°1125417
texaff
Posté le 20-06-2005 à 17:41:54  profilanswer
 

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 :)

n°1125428
satch1042
Posté le 20-06-2005 à 17:48:10  profilanswer
 

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...

n°1125431
texaff
Posté le 20-06-2005 à 17:50:14  profilanswer
 

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...
 

n°1125918
satch1042
Posté le 21-06-2005 à 09:55:15  profilanswer
 

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é

n°1125948
satch1042
Posté le 21-06-2005 à 10:30:41  profilanswer
 

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....................

n°1125967
satch1042
Posté le 21-06-2005 à 10:43:28  profilanswer
 

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!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec des Variables de Session sous Free

 

Sujets relatifs
[VB_Access] Probleme Verrou BD accessprobleme pour parser flux xml
problème chmod / lecture de fichiers sur un serveurPetit probleme de Background avec ie.
Besoin d'aide avec les Variables d'Environnement en VBScriptPasser les variables d'un form en paramètre
transmission d'un id de session[Réglé] probleme pour inclure une page
upload limité chez free (copy()) ->> finte (pieces jointes imap php )[JSP/Struts] Problème avec la gestion des retours chariot
Plus de sujets relatifs à : Problème avec des Variables de Session sous Free


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR