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é] Pb de suppression dans panier, prise de tête


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut [Sécurité] Pb de suppression dans panier, prise de tête
    bonjour
    voilà j'ai un petit soucis depuis un bout de temps avec la suppression d'article dans mon panier.
    quand je clique sur le bouton "supprimer" il ne se passe rien du tout, aucune erreur, ça ne supprime pas, rien de chez rien.

    je vous laisse mon code que voici :
    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
    52
    53
     
     
    mysql_select_db(BASE, $base);
    for ($i = 0; $i <= 20 ; $i++)
    {
    if (($tab_com = mysql_query("SELECT ref_produit, designation_produit, prix_produit
              FROM produit
             WHERE ref_produit = '".$_SESSION['panier']['ref_produit'][$i]."' AND '".$_SESSION['panier']['quantite'][$i]."' > 0", $base)))
    $res_com = mysql_fetch_array($tab_com);
     
     
    $quantite = $_SESSION['panier']['quantite'][$i];
    $prix = $res_com[2]*$quantite;
    if ($quantite > 0)
    {
    echo " <tr align=\"center\">
    <td><b>".$res_com[0]." </b></td>
    <td><b>".$res_com[1]."</b></td>
    <td><b>".$res_com[2]."</b></td>
    <td><b>".$quantite."</b></td>
    <td><b>".$prix."</b></td>
    <td><form>
    <select name=liste>";
     
    echo" <OPTION VALUE=nb1>".$quantite."</OPTION>
      </select>
      </form>
     
    <td><input type = 'submit' name = 'sub_form' value = 'supprimer'></td>
     
    </tr>";
     
    if(isset($_POST['sub_form']) AND $_POST['sub_form']== 'supprimer')
    {
     
    // on test si on y est
    echo "<br>Je suis bien dans la boucle suppression etape 2 --> ==supprimer";
    if ( isset($_SESSION['panier']['ref_produit'][$i])AND ($_POST['sub_form']== 'supprimer') )
    {
    echo "<br>je suis dans le cas ou on a bien une reference d&ns la session";
    unset ($_SESSION['panier']['ref_produit'][$i]);
     
    }
    else
    {
    echo "<br>il n'y a pas de référence dans la session";
    }
    }
    else
    {
    echo "<br>sub_form n'est pas égal à 'supprimer'";
    }
    }
    et j'aurais une autre question : quand le client demande par exemple 2 pc, dans ma liste deroulante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     echo" <OPTION VALUE=nb1>".$quantite."</OPTION>
    j'ai juste le "2" qui apparait, normal c'est la variable!
    comment faire pour qu'il y ait dans la liste deroulante : 1, 2 au lieu de seulement 2.

    merci de vouloir m'aider car ça fait un bail que j'essaye de résoudre ce problème de suppression ainsi que pour le nombre dans la liste déroulante.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 224
    Points : 201
    Points
    201
    Par défaut
    Bon, pour la quantitée, tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    (...)
    <select name=liste>";
    for($i = 0; $i < $quantite; $i++)
     {
     @$quantite_list .= "<option value='nb".$i."'>".$i;
     }
    echo" $quantite_list
      </select>
    (...)
    ?>
    Tu adaptes ton code, c'est améliorable un max.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 224
    Points : 201
    Points
    201
    Par défaut
    Bon, pas très beau ton script

    On continue.

    Tu n'es pas dans des balises 'form' (html) au moment ou tu cliques sur 'supprimer'. Il ne va donc rien se passer!

    Une fois tes balises 'form' en places, ca marchera.

    Problèmes détéctés dans ton script: fais le compte, il te manque une accolade à fermer! (peut-être celle de la boucle 'for'??)

    Erf, je vais pas plus loin dans ton code, c'est le basard :/

    Si j'ai bien compris, ta boucle essaye d'englober tout (il manque une acco!)
    Et je comprend pas bien pourquoi tu veux tout répéter 20fois :/

    Améliore déjà ca et reviens

  4. #4
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    merci la liste déroulante marche

    sinon pour les acolades manquantes je ne les avais pas mises dans le code ici

    pour le form, j'avais complètement zapé, je l'ais remis au bon endroit

    en faite j'ai du code pour les focntions du panier aff_panier.inc.php.txt
    puis le code qui affiche le panier et à partir de là on peux rajouter des artciles et c'est aussi là que l'on peux effacer une quantité d'un article commandeinfo.php.txt

    alors quand je supprime un article il me met une erreur :
    Notice: Undefined index: quantite
    pareil pour l'article
    Undefined index: article
    au niveau de commandeinfo.php, ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $quantite = $_POST['quantite'];
    $article = $_POST['article'];
    j'ai rajouté des sessions pour la quantite et article mais toujours la meme erreur...

    ps : je sais bien que le code est un peu naze mais c'est l'un de mes projets info et j'ai pas le temps, pour l'instant, de tout refaire.... j'essaye que tout marche correctement, pour l'instant..

    merci beaucoup pour l'aide..

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 224
    Points : 201
    Points
    201
    Par défaut
    Pas de problème

    Bon, j'ai récupéré tes 2 fichiers, je les réorganise (Il faut ABSOLUMENT que tu écrives clairement ton PHP) parceque la, j'ai un peu du mal

    Si j'ai fini, je te passerais tous ca demain.

    Sinon, dans le premier fichier, vérifie, il manque une accolade non??

    Exemple pour organiser ton code:

    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
     
    function truc()
     {
     $truc = 0;
     
     if($truc == 1)
      echo '$truc vaut 1';
     else
      echo '$truc ne vaut pas 1 mais '.$truc;
     }
     
     if(!$machin)
      {
      $machin = 0;
      echo 'Bonjour!';
      $_SESSION['monsieur'] = 'Kikoo';
      }
     else
      echo 'Bouh!';
    Voilà en gros

    Bon je cherche...

    Bonne continuation!

    EDIT: Dans le secon fichier, Il y a 2 lignes qui me toublent...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    '<b>'.$date = date('L/m/Y ');
     
    '<b>'.$date2 = date('d/m/Y H:i:s');
    Tu m'expliques?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 224
    Points : 201
    Points
    201
    Par défaut
    Décidement, je m'en sors pas!

    J'ai trouvé une ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      _SESSION['panier']['quantite'][$_SESSION['ref_produit']] = $_SESSION['panier']['quantite'][$_SESSION['ref_produit']]+$quantite;
    ??

    Tu as tronconné ton code!!

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 224
    Points : 201
    Points
    201
    Par défaut
    Arg! Ton code est en carton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $quantite = $_POST['quantite'];
    $article = $_POST['article'];
    Evidement que ca marche pas, ces variables ne sont JAMAIS déclarées!

    La, ca devient compliqué.

    Il y a tellement d'erreur, que c'est impossible de corriger!

    Si tu veux, tu me mets un mp avec ce que tu veux, et je t'aiderais.

  8. #8
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    en faite, la page d'avant tout ça correspond à la page où le client choisit les articles qu'il veut.. donc la quantité et l'article d'où le POST

    je sais que ce panier est un peu à chier, j'avais fait ce projet ya quelque temps, l'année derniere et j'essaye de m'y remettre.
    c'est qu'il y a des trucs que je ne comprends pas trop et j'avais enviie de tout erfaire mais j'ai un oral cette semaine et j'ai d'autres projets qu'il faut que je finalise.
    c'est vrai que dans ce code je suis paumée par moment

  9. #9
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    la 1ere, qui permet de selectionner les articles voulus (j'ai mis qu'une seule page de type d'article)
    [ATTACH]Ordinateur choix[/ATTACH]
    puis les fonctions du panier :
    [ATTACH]Fonction panier[/ATTACH]
    puis la page des commandes, où il m'est impossible de supprimer quoi que se soit :
    [ATTACH]Commande[/ATTACH]


    merci encore beaucoup pour ton aide
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [Sécurité] suppression dans panier
    Par oceane751 dans le forum Langage
    Réponses: 8
    Dernier message: 13/12/2005, 14h53
  2. Réponses: 2
    Dernier message: 05/10/2004, 22h43
  3. Combler les trous lors d'une suppression dans une table
    Par Billybongjoe dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 08/04/2004, 14h02
  4. [LG]suppression dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 9
    Dernier message: 16/12/2003, 21h20
  5. [LG]suppression dans un fichier
    Par cedrick essale dans le forum Langage
    Réponses: 5
    Dernier message: 10/08/2003, 15h22

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