Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/10/2007, 21h00   #1
Membre régulier
 
Avatar de kumo
 
Étudiant
Inscription : mai 2007
Messages : 215
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 215
Points : 91
Points : 91
Envoyer un message via MSN à kumo
Par défaut problème lors de l'appel à session_start

donc voilà j'ai un fichier index.php
Code :
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 :
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 ???
kumo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 21h05   #2
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
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
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 21h09   #3
Membre régulier
 
Avatar de kumo
 
Étudiant
Inscription : mai 2007
Messages : 215
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 215
Points : 91
Points : 91
Envoyer un message via MSN à kumo
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 :
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
kumo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 21h13   #4
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
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
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 21h18   #5
Membre régulier
 
Avatar de kumo
 
Étudiant
Inscription : mai 2007
Messages : 215
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 215
Points : 91
Points : 91
Envoyer un message via MSN à kumo
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...
kumo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 21h27   #6
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
Citation:
si mon session_start est en plein milieu
Désolé, mais je t'assure que je ne le vois pas^^

Citation:
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
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 21h39   #7
Membre habitué
 
Inscription : novembre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 440
Points : 134
Points : 134
Normalement, le session_start doit être la première ligne de tout le script.
Prosis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 21h41   #8
Membre régulier
 
Avatar de kumo
 
Étudiant
Inscription : mai 2007
Messages : 215
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 215
Points : 91
Points : 91
Envoyer un message via MSN à kumo
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 :
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>
kumo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 21h46   #9
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
je serais toi je ferais plutôt:


Code :
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
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 21h51   #10
Membre régulier
 
Avatar de kumo
 
Étudiant
Inscription : mai 2007
Messages : 215
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 215
Points : 91
Points : 91
Envoyer un message via MSN à kumo
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"...
kumo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 21h53   #11
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
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
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 21h55   #12
Membre régulier
 
Avatar de kumo
 
Étudiant
Inscription : mai 2007
Messages : 215
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 215
Points : 91
Points : 91
Envoyer un message via MSN à kumo
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
kumo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 22h03   #13
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
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
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 22h09   #14
Membre régulier
 
Avatar de kumo
 
Étudiant
Inscription : mai 2007
Messages : 215
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 215
Points : 91
Points : 91
Envoyer un message via MSN à kumo
désolé de te déranger franchement, je suis chiant
Code :
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>
kumo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 22h13   #15
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
voilà,

essai ça:

Code :
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.

Citation:
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
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 22h21   #16
Membre régulier
 
Avatar de kumo
 
Étudiant
Inscription : mai 2007
Messages : 215
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 215
Points : 91
Points : 91
Envoyer un message via MSN à kumo
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
kumo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 22h23   #17
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
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
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h58.


 
 
 
 
Partenaires

Hébergement Web