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 :

Probleme dans l'affichage des pages


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut Probleme dans l'affichage des pages
    Salut,

    Je veux creer une page dans laquelle quand un utilisateur termine l'inscription et clique sur le bouton continuer alors il se redirigera vers une page compte.php qui contient les informations sur son profil et il y'a ouverture de session mais quand je fais ca il m'affiche toujours vous n'etes pas encore connecte!

    Voila donc les codes des pages:
    confirm.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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    <?php 
    		  echo'<form name="confirm" action="compte.php">'; 
    connectMaBase();
    $civilite=$_POST['civilite'];
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $login=$_POST['login'];
    $pass1=$_POST['pass1'];
    $pass2=$_POST['pass2'];
    $societe=$_POST['societe'];
    $date_naissance=$_POST['date_naissance'];
    $fixe=$_POST['fixe'];
    $portable=$_POST['portable'];
    $fax=$_POST['fax'];
    $pays=$_POST['pays'];
    $email=$_POST['email'];
    $source=$_POST['source'];
    $adresse=$_POST['adresse'];
    $postal=$_POST['postal'];
    $ville=$_POST['ville'];
     
    echo'Bienvenue,'.$civilite.','.$nom.','.$prenom.',dans notre site';
    echo'<br/>';
    echo'<br/>';
    echo'Désormais, pour accéder à votre compte client :';
    echo'<br/>';
    echo'Votre nom d\'utilisateur est:'.$login;
    echo'<br/>';
     
     
     
     
     
     
     
    $sql = 'INSERT INTO client(login,pass1,pass2,nom,prenom,civilite,societe,date_naissance,fixe,portable,fax,pays,email,source,adresse,postal,ville,date_inscription) VALUES("'.$login.'","'.$pass1.'","'.$pass2.'","'.$nom.'","'.$prenom.'","'.$civilite.'","'.$societe.'","'.$date_naissance.'","'.$fixe.'","'.$portable.'","'.$fax.'","'.$pays.'","'.$email.'","'.$source.'","'.$adresse.'","'.$postal.'","'.$ville.'",now())';
    mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
    // on ferme la connexion
    echo'Vos données ont bien etés enregistrés';
    echo'<br/>';
    $sql1='select id_client from client where login="'.$login.'"';
     
     
    $req1=mysql_query ($sql1) or die ('Erreur SQL !'.$sql1.'<br />'.mysql_error());
    $data = mysql_fetch_array($req1);
     
    echo'<br/>';
    echo'<br/>';
    echo'Pour tout correspondance avec notre service commercial,veuillez notez que votre numero de compte est:'.$data['id_client'];
     
     
     
     
     
    echo'<br/>';
    echo'<input name="valider" type="submit" value="continuer"></form>';
     
    if(isset($_POST['valider'])){
    $sql2='select id_client from client where login="'.$_POST['login'].'"';
     
     
    $req2=mysql_query ($sql2) or die ('Erreur SQL !'.$sql1.'<br />'.mysql_error());
    $id_client = mysql_result($req2,0);
    session_start();
    		$_SESSION['login'] = $_POST['login']; 
              $_SESSION['id_client'] = $id_client;
    }
    mysql_close();
     
    ?>
    et voila le code de compte.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
     
    <?php
    session_start();
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <?php
    include("fonctions.php");
    ?>
    <html>
    <head></head>
    <body>
    <em><a href="profile.php" class="Style9">votre profil</a> </em>
    </body>
    </html>
    et voila le code de profile.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
    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
     
    <?php
    session_start(); 
    require("./auth.php");
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <?php
    include("fonctions.php");
    ?>
     
     
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>Mon profile</title>
    <body>
    <?php 
     
    connectMaBase();
    echo'<br/>';
    echo'<strong>-Votre id:'.$_SESSION['id_client'].'</strong>';
    echo'<br/>';
    echo'<strong>-Votre login:'.$_SESSION['login'].'</strong>';
    echo'<br/>';
    $sql1='select nom from client where login="'.$_SESSION['login'].'"';
     
     
    $req1=mysql_query ($sql1) or die ('Erreur SQL !'.$sql1.'<br />'.mysql_error());
    $data = mysql_fetch_array($req1);
    echo'<strong>-Votre nom:'.$data['nom'].'</strong>';
    echo'<br/>';
    $sql2='select prenom from client where login="'.$_SESSION['login'].'"';
     
     
    $req2=mysql_query ($sql2) or die ('Erreur SQL !'.$sql2.'<br />'.mysql_error());
    $data = mysql_fetch_array($req2);
    echo'<strong>-Votre Prenom:'.$data['prenom'].'</strong>';
    echo'<br/>';
    $sql3='select civilite from client where login="'.$_SESSION['login'].'"';
     
     
    $req3=mysql_query ($sql3) or die ('Erreur SQL !'.$sql3.'<br />'.mysql_error());
    $data = mysql_fetch_array($req3);
    if($data['prenom']='Monsieur'){
    echo'<strong>-Sexe:masculin</strong>';
    }
    else if($data['prenom']='Mlle' || $data['prenom']='Mme')
    echo'-Sexe:Feminin.';
    echo'<br/>';
    $sql4='select date_naissance from client where login="'.$_SESSION['login'].'"';
    $req4=mysql_query ($sql4) or die ('Erreur SQL !'.$sql4.'<br />'.mysql_error());
    $data = mysql_fetch_array($req4);
    echo'<strong>-Date de naissance:'.$data['date_naissance'].'</strong>';
    echo'<br/>';
    $sql4='select date_inscription from client where login="'.$_SESSION['login'].'"';
     
     
    $req4=mysql_query ($sql4) or die ('Erreur SQL !'.$sql4.'<br />'.mysql_error());
    $data = mysql_fetch_array($req4);
    echo'<strong>-Date d\'inscription:'.$data['date_inscription'].'</strong>';
    echo'<br/>';
    $sql5='select portable from client where login="'.$_SESSION['login'].'"';
     
     
    $req5=mysql_query ($sql5) or die ('Erreur SQL !'.$sql5.'<br />'.mysql_error());
    $data = mysql_fetch_array($req5);
    echo'<strong>-Votre telephone:'.$data['portable'].'</strong>';
    echo'<br/>';
    $sql6='select adresse,postal,ville,pays from client where login="'.$_SESSION['login'].'"';
     
     
    $req6=mysql_query ($sql6) or die ('Erreur SQL !'.$sql6.'<br />'.mysql_error());
    $data = mysql_fetch_array($req6);
     
    echo'Adresse de livraison:<br/>';
    echo'<strong>'.$data['adresse'].'</strong><br/>';
    echo'<strong>'.$data['postal'].'</strong>';
    echo'&nbsp;&nbsp;&nbsp;<strong>'.$data['ville'].'&nbsp;&nbsp;'.$data['pays'].'</strong>';
     
     
     
     
     
    echo'<br/>';
     
    mysql_close();?>
    </body>
    Ou est donc le probleme?pourquoi les sessions ne s'enregistrent pas?

    Et merci pour vos reponses.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    dans confirm.php
    - le session_start() doit être avant tous les echo
    - tu utilises les valeurs reçues des formulaires directement dans tes requêtes. Toutes tes requêtes sont donc attaquables par injection SQL.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Regarde dans ta page confirm.php, session_start(); est au milieu de la page alors qu'il ne devrait y avoir eu aucun echo avant l'appel à cette fonction.
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  4. #4
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut
    J'ai fais session_start() avant les echo mais voila l'erreur qui a ete produite:

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\EasyPHP-5.3.2i\www\site-impression\confirm.php:165) in C:\EasyPHP-5.3.2i\www\site-impression\confirm.php on line 166

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Bonjour,
    Vérifie que dans confirm.php tu n'aies pas d'espace avant le début de ton code (que tout soit bien en haut de la page).
    IL ne faut absoluement aucun affichage avant que ton session_start n'aie lieu (que ce soit des echo , des espaces ou du html).

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as mis ton session_start() ligne 166 et tu as un affichage ligne 165.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut
    Oui j'ai fais session_start() dans le debut de la page,mon probleme c'est pas dans confirm.php mais mon probleme consiste quand je suis dans la page compte.php et je veux cliquer sur le lien profile alors une alerte javascript m'affiche 'vous devez vous identifiez!' dont dans la page profile.php je fais appel a la page auth.php et voila le code de auth.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
      <?php
      if(!isset($_SESSION['id_client'])){   
      echo '<script>alert("Vous devez vous identifiez!" );window.location.href = "./index.php";</script>'; 
      exit(); }
    ?>
    vous avez compris le probleme?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Toutes tes requêtes sont donc attaquables par injection SQL.
    On écoute le monsieur !

    FAQ - Qu'est-ce qu'une SQL Injection ?
    Fonction PHP : mysql_real_escape_string

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $civilite = mysql_real_escape_string($_POST['civilite']);
    $nom = mysql_real_escape_string($_POST['nom']);
    $prenom = mysql_real_escape_string($_POST['prenom']);
    // etc.
    c'est un minimum

    Ta balise <script> n'est pas très bien placée dans la page générée, le mieux serait de la placer dans le <head>


    Essaye d'être un peu plus clair et de faire des phrases moins longues j'ai du mal à cerner ton problème.

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2010
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['id_client']
    Dans ton code je vois nulle part ou tu charge cette variable il est donc normal que lorsque tu fais un test isset($_SESSION['id_client']) il ne sois pas chargé !!!
    Car dans ton premier fichier le chargement ne se fera pas car ton session_start() n'est pas au début de ton code.

    Fred75

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/05/2010, 21h58
  2. Réponses: 0
    Dernier message: 24/02/2009, 14h44
  3. probleme avec l'affichage des images dans une jsp
    Par hypothese dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 27/05/2008, 16h56
  4. Réponses: 15
    Dernier message: 15/11/2005, 17h33

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