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 17/02/2006, 08h30   #1
Membre à l'essai
 
Inscription : juillet 2005
Messages : 159
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 159
Points : 22
Points : 22
Par défaut [Sécurité] Probleme pour entrer une valeur dans un tableau de session

donc voila j'ai ma session défini ainsi :
Code :
1
2
session_start();
$_SESSION['achats'] = array();
ensuite dans ma session je stocke un ID produit et une quantité associé à cette quantité :
$_SESSION['achats'][un numero ID] pour le produit
$_SESSION['achats'][un numero ID]['qte'] ou sont stock la quantité du produit

Pour l'affichage j'utilise le code suivant :
Code :
1
2
3
foreach($_SESSION['achats'] as $idproduit => $qte) {
echo $idarticle.'-----'.$qtearticle.'-';
...}
a l'affichage l'ID c'est bon mais pour la quantité il y a ecrit Array
budiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 08h50   #2
Membre du Club
 
Inscription : février 2005
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Suisse

Informations forums :
Inscription : février 2005
Messages : 93
Points : 67
Points : 67
Envoyer un message via MSN à -DeN-
Ca parle de lui même...
quand t'a x[][] ça veut dire qu'y a un array d'array

Code :
1
2
3
4
5
 
$_SESSION['produit'] = array(produit=>'pomme',id=>'0', qte=> '5');
 
echo $_SESSION['produit']['id'];
//affiche 0
-DeN- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 08h57   #3
Membre à l'essai
 
Inscription : juillet 2005
Messages : 159
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 159
Points : 22
Points : 22
moi mais c'est ma quantité qui rentre pas bien ou bien j'ai mal déclaré quelque chose
budiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 09h23   #4
Membre éclairé
 
Avatar de hisy
 
Inscription : novembre 2004
Messages : 373
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 373
Points : 300
Points : 300
Envoie nous un print_r de ton tableau $achats ...

print_r($achats);[/code]
__________________
Take it HiSy
hisy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 09h58   #5
Membre à l'essai
 
Inscription : juillet 2005
Messages : 159
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 159
Points : 22
Points : 22
Citation:
Array ( [16] => Array ( [qte] => 0 ) [193] => Array ( [qte] => 0 ) [284] => Array ( [qte] => 0 ) )
budiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 08h35   #6
Membre à l'essai
 
Inscription : juillet 2005
Messages : 159
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 159
Points : 22
Points : 22
J'ai remodifier légerement mon code donc voila j'ai ma session défini ainsi :
Code :
1
2
3
 
session_start();
$_SESSION['achats'] = array();
ensuite dans ma session je stocke un ID produit et une quantité associé à cette quantité :
$_SESSION['achats'][un numero ID] ou est stocké la quantité du produit et a pour indice l'Id du produit

Pour l'affichage j'utilise le code suivant :
Code :
1
2
3
4
5
6
 
foreach($_SESSION['achats'] as $idproduit => $qte) {
$idarticle=$idproduit;
$qtearticle=$qte;
echo $idarticle.'-----'.$qtearticle.'-';
...}
a l'affichage l'ID c'est bon mais pour la quantité il y a ecrit Array
budiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 08h48   #7
Membre à l'essai
 
Inscription : juillet 2005
Messages : 159
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 159
Points : 22
Points : 22
je n'arrive plus a rentrer la moindre valeur pour la qunatité dans mon tableau de session, je ne comprends pas alors j'ai remodifier mon code de gestion du panier pour l'ajout qui est maintenant ainsi :

Code :
1
2
3
4
5
6
7
//Ajout d'un produit dans le panier
    if ($actionpanier == 'AJOUT'){
        if (!isset($_SESSION['achats'][$idproduit])) {
            $_SESSION['achats'][$idproduit] = 0;
        }
        $_SESSION['achats'][$idproduit] += 1;
    }
budiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 08h58   #8
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
keske tu veu a la fin ? comme t'a di -DeN- t'a un array d'array
Code :
1
2
3
4
5
6
7
8
Array ( [16] => Array ( [qte] => 0 ) [193] => Array ( [qte] => 0 ) [284] => Array ( [qte] => 0 ) )
 
[16] pointe sur un tableau mais pas sur une valeur de ton tableau.tu doi revoir l'exple de DeN
 
$_SESSION['produit'] = array(produit=>'pomme',id=>'0', qte=> '5');
 
echo $_SESSION['produit']['id'];
//affiche 0
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 09h15   #9
Membre à l'essai
 
Inscription : juillet 2005
Messages : 159
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 159
Points : 22
Points : 22
non j'ai modifié mon code, voila maintenant ce que ca m'affiche :
Code :
Array ( [284] => [29] => [302] => )
la quantité ne s'insere plus dans le panier ?
budiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 09h36   #10
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
envoie le code modifié.ça doit un problème de structutration
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 10h02   #11
Membre à l'essai
 
Inscription : juillet 2005
Messages : 159
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 159
Points : 22
Points : 22
Voila le code de gestion du panier :
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
<?
session_start();
if(array_key_exists('action', $_GET)){
   $actionpanier=$_GET['action'];
//Recupération de l'ID dans les différents cas
if(isset($_GET['idsuppr'])) $idproduit=$_GET['idsuppr'];
else{
    if(isset($_POST['QTE']) && isset($_POST['idart'])) $idproduit=$_POST['idart'];
    else{
        if(isset($_GET['idpdt'])) $idproduit=$_GET['idpdt'];
        else{
            if(isset($_GET['id'])) $idproduit=$_GET['id'];
        }
    }
}        
//Suppresion d'une ligne
if ($actionpanier=='supprligne') unset($_SESSION['achats'][$idproduit]);
//Vider le panier
if ($actionpanier=='vider') unset($_SESSION['achats']);
//Test pour que la page ne refasse pas la meme chose quand on actualise
if($_SESSION['verif_value'] == $_GET['verif_value']){
   //Ajout d'un produit dans le panier
    if ($actionpanier == 'AJOUT'){
        if (!isset($_SESSION['achats'][$idproduit])) {
            $_SESSION['achats'][$idproduit] = 0;
        }
        $_SESSION['achats'][$idproduit] += 1;
    }
//---------------------------------Modification d'une quantité dans le panier
//Plus un
    if ($actionpanier=='ajoutun'){
        $_SESSION['achats'][$idproduit] ++;
    } 
    //Moins un
    if ($actionpanier=='supprun'){
        $_SESSION['achats'][$idproduit] --;
    }
    //Saisie de la quantité
    if ($_SESSION['achats'][$idproduit] != $_POST['QTE']) {
        $_SESSION['achats'][$idproduit] = $_POST['QTE']; //La nouvelle remplace l'ancienne qte
    }
    //Choix alétoire d'une valeur pour gérer problème de l'actualisation
    $_SESSION['verif_value'] = rand(1,1000000);
} 
   ?>
<script>
window.location.replace('index2.php?panier=1.php');
</script>
<?
}
budiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 10h18   #12
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Avec :

Citation:
<?php
$_SESSION
['achats'] = array ( 16 => array ( 'qte' => ) , 
                                                
193 => array ( 'qte' => ) , 
                                                
284 => array ( 'qte' => 
                                                ) ;
?>

Phpsyntaxcolor powered by decabodi
Tu dois faire :

Citation:
<?php
foreach ( $_SESSION['achats'] as $idproduit => $qte  )
{
echo 
$idproduit '-----' $qte['qte'] . '-<br />' ;
}
?>

Phpsyntaxcolor powered by decabodi
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 10h20   #13
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
je pense que la resolution de ton script passerai par un tableau multidimensionnel. car t'a un tableau que tu voudrais imbriquer dans un autre.
alors
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 10h21   #14
Membre à l'essai
 
Inscription : juillet 2005
Messages : 159
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 159
Points : 22
Points : 22
merci mais j'ai remodifié mon code, que j'ai mis au dessus
budiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 10h22   #15
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Oki, alors ça en est où maintenant ??
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 10h33   #16
Membre à l'essai
 
Inscription : juillet 2005
Messages : 159
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 159
Points : 22
Points : 22
Citation:
Envoyé par polace
je pense que la resolution de ton script passerai par un tableau multidimensionnel. car t'a un tableau que tu voudrais imbriquer dans un autre.
alors
je comprends pas j'ai un tableau qui stocke une quantité et l'indice de la cellule est l'Id du produit, c'est simple nan ?
budiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 10h56   #17
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Et cette solution ne te convient pas ?
http://www.developpez.net/forums/viewtopic.php?p=2641544#2641544
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 10h58   #18
Membre à l'essai
 
Inscription : juillet 2005
Messages : 159
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 159
Points : 22
Points : 22
j'aime bien la solution que j'utilise
mais je ne comprends pas pourquoi ma quantité ne s'insere pas dans mon tableau de session
budiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 11h00   #19
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
On était sur un problème d'affichage et on est maintenant sur un problème d'insertion de donnée dans un tableau c'est ça ?

Dans ce cas là il aurait fallu scinder le topic en deux questions distinctes.

Là j'ai du mal à suivre, dialogue de sourd.
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 17h26   #20
Membre à l'essai
 
Inscription : juillet 2005
Messages : 159
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 159
Points : 22
Points : 22
pardon en fait maintenant je n'arrive plus a insérer la quantité dans mon tableau le code est le suivant pour la gestion de mon panier :

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
 
<?
session_start();
if(array_key_exists('action', $_GET)){
   $actionpanier=$_GET['action'];
//Recupération de l'ID dans les différents cas
if(isset($_GET['idsuppr'])) $idproduit=$_GET['idsuppr'];
else{
    if(isset($_POST['QTE']) && isset($_POST['idart'])) $idproduit=$_POST['idart'];
    else{
        if(isset($_GET['idpdt'])) $idproduit=$_GET['idpdt'];
        else{
            if(isset($_GET['id'])) $idproduit=$_GET['id'];
        }
    }
}       
//Suppresion d'une ligne
if ($actionpanier=='supprligne') unset($_SESSION['achats'][$idproduit]);
//Vider le panier
if ($actionpanier=='vider') unset($_SESSION['achats']);
//Test pour que la page ne refasse pas la meme chose quand on actualise
if($_SESSION['verif_value'] == $_GET['verif_value']){
   //Ajout d'un produit dans le panier
    if ($actionpanier == 'AJOUT'){
        if (!isset($_SESSION['achats'][$idproduit])) {
            $_SESSION['achats'][$idproduit] = 0;
        }
        $_SESSION['achats'][$idproduit] += 1;
    }
//---------------------------------Modification d'une quantité dans le panier
//Plus un
    if ($actionpanier=='ajoutun'){
        $_SESSION['achats'][$idproduit] ++;
    }
    //Moins un
    if ($actionpanier=='supprun'){
        $_SESSION['achats'][$idproduit] --;
    }
    //Saisie de la quantité
    if ($_SESSION['achats'][$idproduit] != $_POST['QTE']) {
        $_SESSION['achats'][$idproduit] = $_POST['QTE']; //La nouvelle remplace l'ancienne qte
    }
    //Choix alétoire d'une valeur pour gérer problème de l'actualisation
    $_SESSION['verif_value'] = rand(1,1000000);
}
   ?>
<script>
window.location.replace('index2.php?panier=1.php');
</script>
<?
}
budiste 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 00h58.


 
 
 
 
Partenaires

Hébergement Web