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 :

problème lors de l'appel à session_start


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 125
    Points
    125
    Par défaut problème lors de l'appel à session_start
    donc voilà j'ai un fichier index.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
     
    <?php
     
       // on teste si le visiteur a soumis le formulaire de connexion  
       if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { 
          if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { 
     
           $base = mysql_connect ('localhost', 'root', 'root'); 
            mysql_select_db ('micro-sell', $base); 
             // on teste si une entrée de la base contient ce couple login / pass 
             $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; 
             $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
          $data = mysql_fetch_array($req); 
     
           mysql_free_result($req); 
            mysql_close(); 
     
           // si on obtient une réponse, alors l'utilisateur est un membre 
           if ($data[0] == 1) 
    	   { 
     
               $_SESSION['login'] = $_POST['login']; 
                header('Location: membre.php'); 
               exit(); 
             } 
            // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe 
            elseif ($data[0] == 0) { 
                $erreur = 'Compte non reconnu.'; 
    }
           // sinon, alors la, il y a un gros problème :) 
          else { 
               $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; 
             } 
          } 
         else { 
           $erreur = 'Au moins un des champs est vide.'; 
          }  
       }  
       ?>
       <html>
     <head>
      <title>Accueil</title>
       </head>
     
     <body>
      Connexion à l'espace membre :<br />
     <form action="connect.php" method="post">
      Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
       Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
     <input type="submit" name="connexion" value="Connexion">
     </form>
       <a href="inscription.php">Vous inscrire</a>
       <?php
       if (isset($erreur)) echo '<br /><br />',$erreur;  
       ?>
      </body>
      </html>
    le probleme des que je valide en cliquant sur "connexion" j'ai l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1-8-modgsi\www\monsite\connect.php:1) in c:\program files\easyphp1-8-modgsi\www\monsite\connect.php on line 20
     
    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8-modgsi\www\monsite\connect.php:1) in c:\program files\easyphp1-8-modgsi\www\monsite\connect.php on line 20
     
    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8-modgsi\www\monsite\connect.php:1) in c:\program files\easyphp1-8-modgsi\www\monsite\connect.php on line 22
    quelqu'un peut m'expliquer s'il vous plait ???
    Voici les meilleurs sources du monde:
    Les tutos- La F.A.Q
    et aussi
    Google...si si c'est bien essaye....c'est satisfait ou satisfait

    lisez les règles et n'oubliez pas le

  2. #2
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    bonsoir,

    Dans un premier temps, à quel moment déclare tu ton session_start() ??
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  3. #3
    Membre habitué Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 125
    Points
    125
    Par défaut
    ben en plein milieu
    mais la je suis allé vérifié l'auto_start dans le fichier php_ini et il est a vrai, donc quand j'enleve le session_start il ne me reste que le message d'erreur concernant le header
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8-modgsi\www\monsite\connect.php:1) in c:\program files\easyphp1-8-modgsi\www\monsite\connect.php on line 22
    Voici les meilleurs sources du monde:
    Les tutos- La F.A.Q
    et aussi
    Google...si si c'est bien essaye....c'est satisfait ou satisfait

    lisez les règles et n'oubliez pas le

  4. #4
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    bizar dans ta portion de code je ne vois pas le session_start().

    Sinon pour le header, c'est que tu revois du code html avant de le déclarer.

    Le saut de ligne avant ton <?php est aussi présent sur ton fichier??

    Si c'est le cas supprime le...
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  5. #5
    Membre habitué Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 125
    Points
    125
    Par défaut
    si mon session_start est en plein milieu mais tu m'a dit qu'il faut que je fasse pour mon header, j'ai pas compris...
    Voici les meilleurs sources du monde:
    Les tutos- La F.A.Q
    et aussi
    Google...si si c'est bien essaye....c'est satisfait ou satisfait

    lisez les règles et n'oubliez pas le

  6. #6
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    si mon session_start est en plein milieu
    Désolé, mais je t'assure que je ne le vois pas^^

    mais tu m'a dit qu'il faut que je fasse pour mon header, j'ai pas compris...
    Avant de mettre un header, tu ne dois avoir aucun retour de code html et un saut de ligne ou un espace c'est du code. De plus pour un header location, c'est même aucun retour de code html après!

    Donc si comme sur ton exemple plus haut, il y a un saut de ligne avant le <?php, alors ton header ne fonctionnera pas...
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Points : 184
    Points
    184
    Par défaut
    Normalement, le session_start doit être la première ligne de tout le script.

  8. #8
    Membre habitué Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 125
    Points
    125
    Par défaut
    enfaite j'ai reglé le probleme , c'est parcequ'il y avait en effet des espaces avant le <?

    mais maintenant j'ai un probleme la page la doit me rediriger vers membre.php quand je clique sur connexion, mais maintenant la redirection ne se fait pas, et quand je remet l'espace avant la balise <?, il fait la redirection (ça se voit sur l'url, mais il m'affiche le message d'erreur vu précédemment

    voici ma page membre.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
     
    <?php
     
       if (!isset($_SESSION['login'])) { 
           header ('Location: http://localhost/monsite/connect.php'); 
           exit();  
        }  
       ?>
     
       <html>
     <head>
      <title>Espace membre</title>
      </head>
     
       <body>
       Bienvenue<?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
      <a href="deconnexion.php">Déconnexion</a>
     </body>
      </html>
    Voici les meilleurs sources du monde:
    Les tutos- La F.A.Q
    et aussi
    Google...si si c'est bien essaye....c'est satisfait ou satisfait

    lisez les règles et n'oubliez pas le

  9. #9
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    je serais toi je ferais plutôt:


    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
    <?php
    session_start();
       if (!isset($_SESSION['login'])) { 
           header ('Location: http://localhost/monsite/connect.php'); 
     
        }  
    else{
       ?>
     
       <html>
     <head>
      <title>Espace membre</title>
      </head>
     
       <body>
       Bienvenue<?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
      <a href="deconnexion.php">Déconnexion</a>
     </body>
      </html>
    <?php
    }
     
    ?>
    et là tu règle tous tes pb
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  10. #10
    Membre habitué Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 125
    Points
    125
    Par défaut
    ben ça fonctionne toujours pas, quand je clique sur connexion il me redirige sur la meme page, c'est comme si il rentrait pas dans le "else"...
    Voici les meilleurs sources du monde:
    Les tutos- La F.A.Q
    et aussi
    Google...si si c'est bien essaye....c'est satisfait ou satisfait

    lisez les règles et n'oubliez pas le

  11. #11
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    tout simplement parce que tu n'as pas de session $_SESSION['login'].

    Donc il ne rentrera pas dans le else tant que tu n'aura pas cette variable de remplie...
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  12. #12
    Membre habitué Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 125
    Points
    125
    Par défaut
    ben si elle est déclarée dans le code de la page connect.php
    j'avais mis $_SESSION['login'] = $_POST['login']; avant mon header
    Voici les meilleurs sources du monde:
    Les tutos- La F.A.Q
    et aussi
    Google...si si c'est bien essaye....c'est satisfait ou satisfait

    lisez les règles et n'oubliez pas le

  13. #13
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    met moi le code de ta page connect.php STP
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  14. #14
    Membre habitué Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 125
    Points
    125
    Par défaut
    désolé de te déranger franchement, je suis chiant
    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
     
    <?php
     
       // on teste si le visiteur a soumis le formulaire de connexion  
       if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { 
          if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { 
     
           $base = mysql_connect ('localhost', 'root', 'root'); 
            mysql_select_db ('micro-sell', $base); 
             // on teste si une entrée de la base contient ce couple login / pass 
             $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; 
             $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
          $data = mysql_fetch_array($req); 
     
           mysql_free_result($req); 
            mysql_close(); 
     
           // si on obtient une réponse, alors l'utilisateur est un membre 
           if ($data[0] == 1) 
    	   { 
               $_SESSION['login'] = $_POST['login']; 
                header('Location: http://localhost/monsite/membre.php'); 
               exit(); 
             } 
            // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe 
            elseif ($data[0] == 0) { 
                $erreur = 'Compte non reconnu.'; 
    }
           // sinon, alors la, il y a un gros problème :) 
          else { 
               $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; 
             } 
          } 
         else { 
           $erreur = 'Au moins un des champs est vide.'; 
          }  
       }  
       ?>
       <html>
     <head>
      <title>Accueil</title>
       </head>
     
     <body>
      Connexion à l'espace membre :<br />
     <form action="connect.php" method="post">
      Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
       Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
     <input type="submit" name="connexion" value="Connexion">
     </form>
       <a href="inscription.php">Vous inscrire</a>
       <?php
       if (isset($erreur)) echo '<br /><br />',$erreur;  
       ?>
      </body>
      </html>
    Voici les meilleurs sources du monde:
    Les tutos- La F.A.Q
    et aussi
    Google...si si c'est bien essaye....c'est satisfait ou satisfait

    lisez les règles et n'oubliez pas le

  15. #15
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    voilà,

    essai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_start();
    // on teste si le visiteur a soumis le formulaire de connexion  
    [...]
    Le session_start(); doit être présent et ici.

    désolé de te déranger franchement, je suis chiant
    t'inquiète pas, si ça me saoulerais ça ferais bien longtemps que je serais déco
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  16. #16
    Membre habitué Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 125
    Points
    125
    Par défaut
    Ahhhhhh ouiiiiiiiii, ça marche enfin, ça fait 4h que je galère!!!!
    Merci à toi, merci franchement, si t'etais à côté de moi, je t'aurai sauté dans les bras
    Non merci franchement, je t'ai bien fais chier
    Merciiiiiiiiiiiiiiiiiiii, tu es super gentil
    Voici les meilleurs sources du monde:
    Les tutos- La F.A.Q
    et aussi
    Google...si si c'est bien essaye....c'est satisfait ou satisfait

    lisez les règles et n'oubliez pas le

  17. #17
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Pas de soucis kumo

    la satisfaction est des 2 cotés, ça me fais bien plaisir aussi

    Bonne soirée ++
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

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

Discussions similaires

  1. [Wamp] Erreur d'entête lors de l'appel à session_start
    Par gozu13 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 04/03/2008, 18h51
  2. Problème lors de l'appel d'une fonction Tsql
    Par mobscene dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 23/07/2007, 15h56
  3. [MySQL] problème lors de l'appel d'une fonction
    Par jexl dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/06/2007, 09h53
  4. Problème lors de l'appel d'une procédure stockée
    Par ToxiZz dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/05/2006, 23h42
  5. [POO] Problème lors de l'appel d'une propriété d'un objet.
    Par akecoocoo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/08/2005, 08h51

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