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

PHP & Base de données Discussion :

panier et commande d'achat [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    mais je ne trouve pas encore comment faire
    Dans ton programme (le site), tu doit avoir une étape, une page (genre login.php, ou identification.php) pour permettre à un internaute de s'identifier, de se loguer en tant que client.

    C'est à cette étape là où normalement tu as dû créer cette variable de session "username" ($_SESSION['username']), du moins je suppose.

    (Cela suppose aussi que, avant qu'un internaute puisse s'identifier comme client, qu'un compte client soit créé, qu'une page genre "creer_compte.php".
    Une fois le compte créé, normalement on fait en sorte que le l'internaute soit identifié comme client, tout comme l'étape d'identifiaction).

    C'est toi qui dois savoir où tout cela se déroule, non ?
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  2. #22
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    ah voilà, après avoir réfléchi un petit peu, je pense que j'ai trouvé la solution:
    extraire $_SESSION['id_client'] à partir d'un $_GET (l'id_client sera dans l'url de connexion)
    Oui?
    merci pour l'aide
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  3. #23
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message

    (Cela suppose aussi que, avant qu'un internaute puisse s'identifier comme client, qu'un compte client soit créé, qu'une page genre "creer_compte.php".
    Une fois le compte créé, normalement on fait en sorte que le l'internaute soit identifié comme client, tout comme l'étape d'identifiaction).

    C'est toi qui dois savoir où tout cela se déroule, non ?
    Bien sure que c'est moi , effectivement j'ai fais de la même sorte (page login.php) et maintenant les idées commencent à être plus claire dans ma tète
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  4. #24
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    J'ai répondu un peu vite (le code n'y était pas encore).

    Alors il faudrait plutôt faire comme ceci :
    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
    $req_id = $bdd->prepare('SELECT COUNT(*) AS total, id
    FROM client
    WHERE username = :username');
    $req_id = bindValue(':username', $_POST['username'], PDO::PARAM_STR);
    $req_id->execute();
    $client = $req->fetch(PDO::FETCH_ASSOC);
     
    if ((int)$client['total'] >= 1) {
        // IDENTIFICATION DU CLIENT
        $_SESSION['id_client'] = (int)$client['id_client'];
        $_SESSION['username'] = $_POST['username'];
        //$id_client = $client['id']; <- Inutile
    }
    else {
        // ERREUR : Pas de client correspondant au username
    }
    Il ne faut pas créer/initialiser la session avant que la requête SQL soit exécutée, que celle-ci retourne un résultat, sinon la personne sera considérée comme identifiée alors que username ne correspondrait à personne.
    Faut le faire après vérification.
    Une fois fait, suffit de créer ces 2 variable de session : "id" et "username".

    Ensuite, il ne sert à rien de créer des variables $id_client et $username, exploite dans ton code directement $_SESSION['id_client'] ou $_SESSION['username'] lorsque cela est nécessaire.


    Aussi, dans toutes les pages où une identification est nécessaire, obligatoire, il suffit de faire une alternative :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    // Démarrage de la session
    session_start();
     
    if (isset($_SESSION['id_client']) && (int)$_SESSION['id_client'] > 0) {
        // Ok
    }
    else {
        // Page non autorisé/privé : Une identification est nécessaire
    }
    ?>
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  5. #25
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    J'ai fais la procédure d'ajout au panier d'un produit, mais il y a erreur :
    y'a il une faute?
    Code page: achat.php
    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
    54
    55
    <?php
    session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
    <?php
     header('Content-Type: text/html; charset=UTF-8');
    try
    {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET NAMES utf8';
        $bdd = new PDO('mysql:host=localhost;dbname=projet', 'root', '', $pdo_options);
    }
    catch (PDOException $e)
    {
        die('Erreur : ' . $e->getMessage());
    }
    ?>
    <?php
    if (isset($_POST['valider']))
    {
    	echo 'hiiii';
    	$_SESSION['quantite'] = $_POST['quantite']; 
    	$quantite = $_SESSION['quantite'];
    	$id_client = $_SESSION['id_client'];
    	if (isset($_GET['id_produit']))
    	$id_produit = $_GET['id_produit'];
    	$rep = $bdd->prepare('INSERT INTO panier (id_produit, quantite, id_client) VALUES (:id_produit, :quantite, :id_client) ');
    	$req->bindValue(':id_produit', $id_produit, PDO::PARAM_INT);
    	$req->bindValue(':quantite', $quantite, PDO::PARAM_INT);
    	$req->bindValue(':id_client', $id_client,  PDO::PARAM_INT);
    	$req->execute();
     
    }
    ?>
     
    <body>
    <form action="achat.php" method="post">
    <p>  <label for="quantite">Quantité: </label><br />
    <select name="quantite" id="quantite">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select><br />
     
    </p>
    <input type="submit" value="valider">
    </form>
    </body>
    </html>
    erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Notice: Undefined variable: req in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\projet\achat.php on line 33
     
    Fatal error: Call to a member function bindValue() on a non-object in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\projet\achat.php on line 33
    J'ai testé le problème en faisant echo $id_produit et effectivement j'ai eu une erreur undefined variable $id_produit
    Normalement id_produit doit provenir du lien de redirection lors du clic sur 'ajouter au panier' (dans une autre page que achat.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="achat.php/id_produit=<?php echo $film['id_film'] ?>"> Ajouter au panier </a> // ça marche correctement dans l'URL; c'est affiché le id_produit
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  6. #26
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Notice: Undefined variable: req ...etc... achat.php on line 33
    L'erreur retournée est très clair : $req n'existe pas, donc elle ne serait pas affectée/initialisée.

    A la ligne juste au-dessus : $rep = $bdd->prepare(...) tu as fais une faute de frappe.
    remplace $rep par $req


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="achat.php/id_produit=<?php echo $film['id_film'] ?>"> Ajouter au panier </a>
    Il y a une erreur de syntaxe.
    Pour "passer" (transmettre) une valeur en paramètre, la bonne syntaxe c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="achat.php?id_produit=<?php echo $film['id_film'] ?>"> Ajouter au panier </a>
    Exp. : page.php?param1=valeur1&param2=valeur2


    N'oublie pas qu'il y a beaucoup de cours, tutos, etc ... sur ce forum, comme :
    Le tutoriel pour grands débutants pressés
    J'ai jamais pris le temps de parcourir ce tuto, mais à mon avis il doit avoir des choses intéressantes.

    Juste pour information comme ça.
    Normalement il est préférable de privilégier d'utiliser un formulaire pour ce genre d'opérations (ajout, modification, suppression au panier, etc...) pour une raison simple.
    Normalement le site est destiné à être sur le Net, et son contenu être référencé/indexé par des moteurs de recherches.
    Les moteurs de recherches jusqu'à lors "suivent" les liens présents des pages mais pas les formulaires.
    Donc si on met un lien pour ajouter un produit, tous les moteurs de recherches pourraient alors eux aussi ajouter des produits dans le panier.
    Permettre cela devient quelque part absurde, on peu considérer cela comme un bug.

    Pour ton exo je pense que ce n'est pas gênant (c'est à toi de voir), faut juste le savoir.
    Les liens selon le contexte est par moment indispensable, par moment à proscrire.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  7. #27
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    le problème undefined variable id_produit reste toujours
    Ai-je fais une erreur dans la transmission à travers l'URL?? j'ai corrigé / par ? mais ça marche toujours pas
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  8. #28
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    code qui contient le lien de redirection:
    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
    54
    55
    <?php
    session_start();
    ?>
    <?php
    try
    {
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    	$bdd = new PDO('mysql:host=localhost;dbname=projet', 'root', '', $pdo_options);
    }
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }
    ?>
    <?php
    $result = $bdd->query('SELECT id_film, titre, annee_sortie, image FROM cd_film');
    $films = $result->fetchAll(PDO::FETCH_ASSOC);
    $total_films = count($films);
     
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Votre mediatheque en ligne</title>
    </head>
    <body>
    <h3> Liste des films </h3>
    <table>
    <tr>
        <th>Image</th>
        <th>Detail</th>
        <th>Année de sortie</th>
        <th>Acheter</th>
    </tr>
    <?php
    $cpt = 0;
    foreach ($films as $film) {
    ?>
    <tr>
        <td> <?php echo '<img src="' . $film['image'] . '" />'; ?></td>
        <td><?php echo 'titre: ' . $film['titre']; ?></td>
        <td><?php echo $film['annee_sortie']; ?></td>
        <td> <a href="achat.php?id_produit=<?php echo $film['id_film'] ?>"> Ajouter au panier </a>
    </tr>
    <?php
        $cpt++;
    }
    ?>
    </table>
    <?php
     
    ?>
    </body>
    </html>
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  9. #29
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Je vais peut être dire quelque chose de tout bête.
    As tu fais un echo pour voir si ton code passe dans le test vérifiant la présence de ton id_produit?
    Au lieu de faire un echo $id_produit; faire un echo "test"; et voir si le test est pris en compte?

  10. #30
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par xeloch Voir le message
    Je vais peut être dire quelque chose de tout bête.
    As tu fais un echo pour voir si ton code passe dans le test vérifiant la présence de ton id_produit?
    Au lieu de faire un echo $id_produit; faire un echo "test"; et voir si le test est pris en compte?
    Je n'ai pas compris, quelle est la différence entre echo $id_produit et echo test? Que contient "test"?
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  11. #31
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    La tu as tester en faisant un echo $id_produit;
    Donc normalement après avoir affecter ta valeur. Cependant si ton test n'est pas pris en compte $id_produit n'existe pas.

    Alors que si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (isset($_GET['id_produit']))
     echo "test";
    Si le test s'affiche sur ta page, cela voudrait dire que ton test est pris en compte et que l'erreur de ta variable viendrait de son affectation ou de la récupération de sa valeur

  12. #32
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par xeloch Voir le message
    Si le test s'affiche sur ta page, cela voudrait dire que ton test est pris en compte et que l'erreur de ta variable viendrait de son affectation ou de la récupération de sa valeur
    Test ne s'affiche pas
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  13. #33
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    En faite c'est normal, la page achat s'attend à ce que les données soient transmises en POST via un formulaire :

    C'est ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_POST['valider']))
    {
    ... etc ...
    }
    Du coup on entre pas dans cette condition là.

    Pour que la gestion du panier (de achat.php) soit plus simple, au lieu de créer un lien pour ajouter un produit (ou film), créer un formulaire, avec un bouton submit avec le même nom : valider
    Avec un champ caché (type hidden) pour transmettre 'id_produit'.


    achat.php contient aussi une autre erreur, le header() qui défini l'encodage est mal placé : (faut le faire au tout début, avant le moindre envoie HTML)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header('Content-Type: text/html; charset=UTF-8');
    session_start();
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  14. #34
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    En faite c'est normal, la page achat s'attend à ce que les données soient transmises en POST via un formulaire :

    C'est ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_POST['valider']))
    {
    ... etc ...
    }
    Du coup on entre pas dans cette condition là.
    On entre mais il y a une erreur dans la récupération de id_produit.
    Pour que la gestion du panier (de achat.php) soit plus simple, au lieu de créer un lien pour ajouter un produit (ou film), créer un formulaire, avec un bouton submit avec le même nom : valider
    Avec un champ caché (type hidden) pour transmettre 'id_produit'.
    un autre formulaire avec le bouton submit: valider. Ah d'accord je ferai comme ça peut etre ça résoudra le problème
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  15. #35
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    On entre mais il y a une erreur dans la récupération de id_produit.
    Si le code ici (plus haut) de achat.php est le même que tu as chez toi, c'est impossible.
    Un lien transmet les données en GET, et non en POST, donc c'est pas possible.
    Pour bien se comprendre : On ne peu pas entrer dans la condition, mais la page elle sera affichée.


    Au passage corrige cette erreur sur le header(), c'est important.
    Je n'explique pas pourquoi car c'est un peu long.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  16. #36
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Si le code ici (plus haut) de achat.php est le même que tu as chez toi, c'est impossible.
    Un lien transmet les données en GET, et non en POST, donc c'est pas possible.
    dans achat.php il y'a un formulaire, peut etre vous ne l'avez pas remarqué, le voilà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form action="achat.php" method="post">
    <p>  <label for="quantite">Quantité: </label><br />
    <select name="quantite" id="quantite">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select><br />
     
    </p>
    <input type="submit" value="valider">
    </form>
    Au passage corrige cette erreur sur le header(), c'est important.
    Je n'explique pas pourquoi car c'est un peu long.
    D'accord
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  17. #37
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Une question.
    Ton id_produit s'affiche t'il apres le clique sur le lien?
    Car la tu arrives donc bien avec ton id.
    Cependant quand tu exécutes ton formulaire en mettant une action sur "achat.php" tu as supprimer le passage de ton id_produit en Get et c'est pour cela qu'il ne le récupére pas et donc n'entre pas dans le test

  18. #38
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par xeloch Voir le message
    Une question.
    Ton id_produit s'affiche t'il apres le clique sur le lien?
    Car la tu arrives donc bien avec ton id.
    Oui lorsque je clique sur le lien id_produit est bien associé.
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  19. #39
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Très bien maintenant regarde sur quoi pointe ton formulaire.

    Il ne pointe pas sur ta page "achat.php" reprenant l'identifiant de ton produit, mais uniquement sur une page "achat.php". C'est pour ca qu'il ne reprends pas l'identifiant du produit après l'exécution du formulaire.

    Après ça c'est la correction de ton code, mais je pense que la solution de RunCodePhp est beaucoup plus correct.

    Alors au final c'est toi qui choisis comment procéder


    Edit : RunCodePhp, je viens de lire ton post suivant, si elle entre dans le test de valider, puisque son echo $id_contenu lui as retourner un resultat.

    le soucis se trouve au niveau du formulaire avec ceci normalement cela devrait mieux fonctionner en suivant sa méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form ... action=<?php $_SERVER['PHP_SELF'] ?>" ...>
    etc ...
    </form>

  20. #40
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    dans achat.php il y'a un formulaire, peut etre vous ne l'avez pas remarqué, le voilà:
    Oui, j'ai un peu réctifié ma remarque.
    La page elle est bien affichée, pas de souci, mais on entre pas dans la condition du isset() de "valider", et les traitements ne seront pas effectués (ceux entre les accolades).

    La condition s'attend à ce qu'un élément "valider" existe et soit transmit en POST.

    Comme un lien transmet les données en GET, tu rencontre un problème.
    Pour faire simple, le mieux est de tout faire via un formulaire en POST.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Réponses: 9
    Dernier message: 13/10/2011, 11h27
  2. Onglet importation dans commande d'achat
    Par beuzy dans le forum SAP
    Réponses: 0
    Dernier message: 19/07/2011, 09h46
  3. MM - Commande d'achat - tables de prix
    Par Kiefer_S dans le forum SAP
    Réponses: 1
    Dernier message: 16/06/2010, 10h24
  4. LMSW, CATT ou programme pour commande d'achat
    Par kitty2006 dans le forum SAP
    Réponses: 4
    Dernier message: 30/10/2009, 05h07
  5. smartforms pour commande d'achat
    Par kitty2006 dans le forum SAP
    Réponses: 0
    Dernier message: 05/05/2009, 08h59

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