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 :

problème passage variable de page en page [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut problème passage variable de page en page
    Bonsoir

    J'ai un problème technique sur un site ficitf que je créer actuellement.

    Il s'agit d'un site marchand fictif et j'ai besoin pour cela d'un espace client.

    Je ne sais pas utiliser le module 'SESSION' similaire à 'POST'

    Alors j'ai une page "connexion.php" pour se connecter au compte client voici le code :

    Code php : 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
    <p align="center">Merci de donner votre mot de passe et votre pseudo pour vous identifier.</p>
     
    <form action="moncompte.html" method="post">
     
    <table align="center" valign="middle">
    <tr>
     
    <td>Pseudonyme</td>
    <td><input type="text" name="pseudo"></td>
    </tr>
     
    <tr>
    <td>Mot de passe</td>
    <td><input type="text" name="mdp"></td>
     
    </tr>
    <tr>
    <td><input type="submit" value="VALIDER"></td>
    <td><input type="submit" value="ANNULER"></td>

    J'arrive ensuite sur la page "moncompte.php" . Sur la page "moncompte.php" je pouvoir stoker dans plusieur variable les informations relative au client numero client , nom , prenom , age ... pour pouvoir les passer à d'autres pages

    voici le code de "moncompte.php"

    Code php : 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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    <? session_start();
    
    if(!empty($_POST))
    {
    $mdp = $_POST['mdp'];
    $_SESSION["mdp"] = $_POST["mdp"];
    $pseudo=$_POST['pseudo'];
    $_SESSION["pseudo"] = $_POST["pseudo"];
    }
    else
    {
    $mdp = $_SESSION["mdp"];
    $pseudo = $_SESSION["pseudo"];
    }
    
    // ici j'ai ceci dans l'optique de recupérer les informations avec l'appel d'un requete pour recuperer le numeros client 
    
    <html>
    
    <?php
    
    $mdp = $_POST['mdp'];
    $pseudo=$_POST['pseudo'];
    
    // récupération des données du formulaire de connexion
    ?>
    
    <html>
    
    [.......du blabla....]
    
    $db = mysql_connect('localhost', 'root', '');
    mysql_select_db('projet',$db);
    
    $sql = "SELECT num_cli , nom, prenom, age, mail, tel, adresse, paiement FROM CLIENT WHERE mdp='".mysql_real_escape_string($mdp)."' AND pseudo='".mysql_real_escape_string($pseudo)."'";
    
    //ici je lance la requête qui va me permettre d'afficher les infos du client
    
    $req = mysql_query($sql) or die ('ERREUR '.mysql_error());
    
    $data = mysql_fetch_array($req);
    
    echo " <p align=\"center\" valign=\"middle\"> Bienvenue sur votre compte <br> </p>";
    
    echo " <table align=\"center\" valign=\"middle\"> <tr> <td> Nom :</td> ";
    echo " <td>" ;
    echo  $data['nom'];
    echo "</td> ";
    echo " </tr> ";
    echo " <tr>  ";
    echo " <td> Prenom :</td> ";
    echo " <td>" ; 
    echo $data['prenom'];
    echo "</td> ";
    echo " </tr> ";
    echo " <tr>  ";
    echo " <td> Age :</td> "; 
    echo " <td>" ;
    echo $data['age'] ; 
    echo "</td> ";
    echo " </tr> ";
    echo " <tr> ";
    echo " <td> Adresse :</td> ";
    echo " <td>" ;
    echo $data['adresse']; 
    echo "</td> ";
    echo " </tr> ";
    echo " <tr> ";
    echo " <td> Telephone :</td> ";
    echo " <td>" ;
    echo $data['tel']; 
    echo "</td> ";
    echo " </tr> ";
    echo " <tr> ";
    echo " <td> Mail </td> ";
    echo " <td>";
    echo $data['mail'];
    echo " </td> ";
    echo " </tr> ";
    echo " <tr> ";
    echo " <td> Mod de paiement :</td> ";
    echo " <td> " ; 
    echo $data['paiement'] ;
    echo " </td> ";
    echo " </tr> </table> ";
    
    echo "<div class=\"menu\">";
    echo "<ul class=\"niveau1\">";
    echo "<li>";
    
    // ici je veux recuperer le numéros de client pour le donner à une page en dessous , ici le client peux commande un billet de train , ou d'avion . C'est aussi ici que je bloque comment passer le numéros de client à la page "miseaupanieravion.php" , sachant que ici on est pas dans un formulaire mais un page qui affiche des données d'une base ? 
    
    echo "'<a href=\"miseaupanieravion.php? '".$data['num_cli']."' \">Billet avion</a> '";
    echo "</li></ul></div>";
    echo "<div class=\"menu\">";
    echo "<ul class=\"niveau1\">";
    echo "'<a href=\"miseaupaniertrain.php? '".$data['num_cli']."' \">Billet train</a> '";
    echo "</li></ul></div>";
    
    ?>

    Ensuite on va dire que le client decide de commander un billet d'avion il se rend donc sur la page "miseaupanieravion.php"


    Code php : 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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    <?php 
    
    //ici je rappel les données qui se sont affiché sur "moncompte.php" avec le "SESSION " soit disant pour garder la session utilisé avec ses infos ??? la je péche pour la transmission 
    
    $prenom=$_SESSION['prenom'];
    $nom=$_SESSION['nom'];
    $age=$_SESSION['age'];
    $adresse=$_SESSION['adresse'];
    $tel=$_SESSION['tel'];
    $mail=$_SESSION['courriel'];
    $paiement=$_SESSION['paiement'];
    $mdp=$_SESSION['mdp'];
    $pseudo=$_SESSION['pseudo'];
    $num_cli=$_SESSION['num_cli'];
    
    ?>
    
    <form action="sauvepanieravion.php" method="post">
    
    
    <table>
    <tr> <td>Date de commande : </td>
    <td> <?php $date_c=strftime("%d/%m/%y"); 
    echo strftime("%d/%m/%y") ?> </td>
    
    </tr>
    
    <tr><td> Vol : </td>
    <td> <?php 
    
    $db = mysql_connect('localhost', 'root', '');
    mysql_select_db('projet',$db);
    $vol = mysql_query("SELECT vol FROM TARIF_AVION;");
    
    echo"<select name='vol'>";
    
    while($data = mysql_fetch_array($vol))
    {
    
    echo"<option>".$data["vol"]."</option>\n" ; 
    
    }
    
    echo"</select>";
    ?>
    
    </td></tr>
         
    <tr><td> Compagnie : </td>
    <td> <?php 
    
    $db = mysql_connect('localhost', 'root', '');
    mysql_select_db('projet',$db);
    $comp = mysql_query("SELECT DISTINCT comp FROM TARIF_AVION;");
    
    echo"<select name='comp'>";
    
    while($data = mysql_fetch_array($comp))
    {
    echo"<option>".$data["comp"]."</option>\n" ;
    }
    
    echo"</select>";
    ?>
    </td></tr>
    
    
    <tr><td> Categorie : </td>
    <td> <?php 
    
    $db = mysql_connect('localhost', 'root', '');
    mysql_select_db('projet',$db);
    $cat = mysql_query("SELECT DISTINCT cat FROM TARIF_AVION;");
    
    echo"<select name='cat'>";
    
    while($data = mysql_fetch_array($cat))
    {
    
    echo"<option>".$data["cat"]."</option>\n" ;
    }
    
    echo"</select>";
    ?>
    
    </td></tr>
    
    <tr><td>Date allée :</td>
    <td><input type="text" name="date_d"></td>
    
    </tr>
    <tr>
    
    <tr><td>Date retour :</td>
    <td><input type="text" name="date_f"></td>
    
    </tr>
    
    <tr>
    <td>Quantite :</td>
    <td><input type="text" name="quantite"></td>
    
    <tr>
    <td><input type="submit" value="ENVOYER"></td>
    <td><input type="submit" value="ANNULER"></td>
    </tr>
    
    </tr>
    
    </table>
    </form>

    Une fois cela fait j’envoie le tout à la base avec le numéros de client , la référence du vol , le numéros de commande est incrémenté automatiquement en la base , j'envoie aussi la quantité de billet commandé

    Code php : 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
    <?php 
    
    $num_cli=$_SESSION['num_cli']; // en passe le numéros client qui vient de la page "moncompte.php"  
    $vol=$_SESSION['vol'];
    $comp=$_SESSION['comp'];
    $cat=$_SESSION['cat'];
    $date_f=$_SESSION['date_f'];
    $date_d=$_SESSION['date_d'];
    $date_c=$_SESSION['date_c'];
    
    $quantite=$_SESSION['quantite'];
    
    
    // en revoie les infos saisi en le formulaire pour pouvoir les inclure en la base
    
    $db = mysql_connect('localhost', 'root', '');
    mysql_select_db('projet',$db);
    
    $sql = "'SELECT * FROM TARIF_AVION WHERE vol='".mysql_real_escape_string($vol)."' AND comp='".mysql_real_escape_string($comp)."' AND cat='".mysql_real_escape_string($cat)."'";
    
    //avec cette requete on va récupérer la référence du vol
    
    $req =mysql_query($sql) or die("'Erreur SQL !'".$sql."''".mysql_error());
    
    $data = mysql_fetch_array($req);
    
    $montant=$quantite*$data['prix'];
    
    // on calcul le montant avec la quantité commandé et le prix de base du billet
    
    $sql2="INSERT INTO panier_avion VALUES('','$ref_a','$num_cli','$date_f','$date_d','$date_c','$quantite','$montant')";
    
    // ici on insert le tout en la base , sauf le premier champ qui est un automatique
    
    $req2 =mysql_query($sql2) or die('Erreur SQL !'.$sql2.' '.mysql_error());
    
    echo 'Vos infos ont été enregistrées en la base de donées.';
    mysql_close();
    
    ?>

    J’espère avoir été claire au niveau de ma demande , car je ne m'y retrouve absolument pas avec l'outil " SESSION " . Je ne sais pas comment on l'utilise, ni ou on l'utilise

    Merci d'avance qu'un âme charitable puisse m'aider

  2. #2
    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
    Par défaut
    Salut

    On ne sait pas quel est ton but de créer ce site fictif, mais s'il est là dans un but pédagogique comme apprendre à créer un site Web, et bien il y a pas de petits qui ne vont pas, à commencer par le HTML.

    Ca fait au moins 10 ans (voire plus) qu'on utilise plus le HTML pour faire de la mise en forme, on utilise essentiellement le CSS.
    La raison est que le Web tant à devenir de plus en plus sémantique (On parle de Web sémantique).

    Grosso modo, chaque balise à une signification :
    On y met un du contenu de type paragraphe dans une balise P si c'est réellement un paragraphe (et non un titre ou une légende).
    On y met du contenu tabulaire dans un tableau si c'est réellement des données tabulaires (données comptables, statistiques, etc ...).
    Etc, etc ...


    En résumer, le code HTML que tu fais n'est pas pertinent car tu n'utilises pas les bonnes balises selon le type de contenu.
    De plus tu rajoute de la mise en forme (comme les align="center", valign="middle")
    Pour un formulaire par exemple ce serait comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form action="moncompte.php" method="post">
        <fieldset>
            <legend>Merci de donner votre mot de passe ... blablabla ...</legend>
            <label for="pseudo">Pseudonyme</label>
            <input id="pseudo" type="text" name="pseudo" value="pseudo" />
        </fieldset>
    </form>
    Pour obtenir l'aspect visuel désiré, il est préférable de créer une feuille de style CSS avec les instructions désirés (police, taille, couleur, marge, etc ...)


    Bref ... pour ma part ton support (bouquin ou/et tuto site Web, etc ...) est obsolète, se qui fait que tu te "pollues" l'esprit avec des choses qui ne sont plus à faire et à retenir.
    Fin de cette (grande) parenthèse.


    Tout d'abord, tu ne dis rien sur le ou les problèmes / anomalies que tu rencontres.
    Bref : qu'est ce qui se passe ? Ou qu'est-ce qu'il ne se passe pas ?

    Je remarque qu'il manque la balise fermante du formulaire -> </form>
    Aussi, tu parle d'une page qui a pour nom moncompte.php (page en Php), or, la page que tu indique dans l'attribut "action" du formulaire est : moncompte.html (Page html).
    Ne faudrait il pas mettre : moncompte.php ?

    Puis tantôt tu met ceci <?, puis tantôt <?php.
    Je te conseille de coder toujours de la même manière, donc d'éviter les fantaisies.
    Donc soit l'un, soit l'autre.

    Puis as tu lu la doc concernant les SESSION ?
    Par ailleurs, pour mieux comprendre le fonctionnement des sessions, fais plutôt des essais simples, basiques.
    Il n'y a pas besoin de faire autant de code pour faire ces essais, tout juste 2 ou 3 pages (test1.php, test2.php), 2 ou 3 liens, et 2 ou 3 variables de sessions, et on observe le tout.
    En tout cas le principe de base est assez simple.
    Lis la doc Php à ce sujet et les exemples :
    Les sessions
    session_start()
    session_set_cookie_params()



    Mais encore, n'oublie pas que les sessions reposent sur les cookies (session coté serveur, cookie coté client), ça va de paire.
    Regarde la doc, et à mon sens il est bon de définir le cookie Path et le cookie Domain, car c'est très souvent source de problèmes où d’incompréhensions.
    Il y aussi ici un forum dédié aux sessions : Forum Session

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Problème passage variable
    Par bromlecornu dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/05/2010, 15h02
  2. Réponses: 5
    Dernier message: 22/08/2007, 14h39
  3. Réponses: 6
    Dernier message: 29/09/2006, 10h18
  4. Réponses: 7
    Dernier message: 26/07/2006, 14h48
  5. Passage d'une donnée de page en page
    Par dessinateurttuyen dans le forum Langage
    Réponses: 19
    Dernier message: 17/07/2006, 10h14

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