IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Probleme pour entrer une valeur dans un tableau de session


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2005
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Ca parle de lui même...
    quand t'a x[][] ça veut dire qu'y a un array d'array

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $_SESSION['produit'] = array(produit=>'pomme',id=>'0', qte=> '5');
     
    echo $_SESSION['produit']['id'];
    //affiche 0

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    moi mais c'est ma quantité qui rentre pas bien ou bien j'ai mal déclaré quelque chose

  4. #4
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut
    Envoie nous un print_r de ton tableau $achats ...

    print_r($achats);[/code]
    Take it HiSy

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    Array ( [16] => Array ( [qte] => 0 ) [193] => Array ( [qte] => 0 ) [284] => Array ( [qte] => 0 ) )

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    J'ai remodifier légerement mon code donc voila j'ai ma session défini ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
        }

  8. #8
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    keske tu veu a la fin ? comme t'a di -DeN- t'a un array d'array
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    non j'ai modifié mon code, voila maintenant ce que ca m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [284] => [29] => [302] => )
    la quantité ne s'insere plus dans le panier ?

  10. #10
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    envoie le code modifié.ça doit un problème de structutration
    la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    Voila le code de gestion du panier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>
    <?
    }

  12. #12
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Avec :

    <?php
    $_SESSION
    ['achats']&#160;=&#160;array&#160;(&#160;16&#160;=>&#160;array&#160;(&#160;'qte'&#160;=>&#160;0&#160;)&#160;,&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    193&#160;=>&#160;array&#160;(&#160;'qte'&#160;=>&#160;0&#160;)&#160;,&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    284&#160;=>&#160;array&#160;(&#160;'qte'&#160;=>&#160;0&#160;)&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160&#160;;
    ?>

    Phpsyntaxcolor powered by decabodi
    Tu dois faire :

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

    Phpsyntaxcolor powered by decabodi
    Consultant idéaliste.

  13. #13
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    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
    la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    merci mais j'ai remodifié mon code, que j'ai mis au dessus

  15. #15
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Oki, alors ça en est où maintenant ??
    Consultant idéaliste.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    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 ?

  17. #17
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Et cette solution ne te convient pas ?
    http://www.developpez.net/forums/vie...641544#2641544
    Consultant idéaliste.

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    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

  19. #19
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    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.

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>
    <?
    }

Discussions similaires

  1. [XL-2003] Probleme pour mettre une valeur dans la cellule voulue
    Par tools dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/06/2011, 15h46
  2. Réponses: 13
    Dernier message: 31/01/2010, 10h58
  3. Réponses: 10
    Dernier message: 05/01/2008, 11h59
  4. Probleme pour insérer une valeur dans une bdd
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 30/05/2006, 10h58
  5. Probleme pour faire une somme dans header ??
    Par snoop57 dans le forum Access
    Réponses: 7
    Dernier message: 01/12/2005, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo