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 17/10/2006, 15h38   #1
Invité régulier
 
Inscription : juillet 2006
Messages : 50
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 50
Points : 8
Points : 8
Par défaut pb creation de session

bonjour

voila la gestion de l'acces à l'administration du site par la creation des sessions

j'ai ce code:
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
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
 
    <?
 
    class auth
    {
        var $user;
        var $passwd;
        var $page;
        var $name_session;
        var $redir_time;
 
       function auth() // Constructeur
       {
           $this->user = $_REQUEST["user"]; // Recupere le nom d'utilisateur courant
           $this->passwd = $_REQUEST["passwd"]; // Recupere le mot de passe courant
           $this->page = $_SERVER["PHP_SELF"]; // Recupere le nom de la page
           $this->name_session = "administration"; // Nom de la session
           $this->redir_time = 1500; // Temps de la redirection en ms
 
          session_start(); // Creer la session
           if (!$this->is_admin()) // Verifie si l'utilisateur est deja logger
           {
               if ($_REQUEST["auth"] <> 1) // Verifie si le formulaire doit etre validé
               {
                   // Formulaire
                   echo "<form action='$this->page?auth=1' method=post>
                   <b>Nom d'utilisateur : <input type=text maxlength=30 name=user>
                   <p>Mot de passe : <input type=password maxlength=12 name=passwd>
                   <p><input type=submit value=Valider></form>";
 
                   die(); // Arrete le chargement de la page
               }
               else // Validation du formulaire
               {
                   $this->valid_auth();
               }
           }
       }
 
       function valid_auth()
       {    
 
           if($this->user != "" and $this->passwd != "") // Verifie que les champs ne sont pas vides
           {
               $this->passwd = md5($this->passwd); // Crypte le mot de passe
               $result = mysql_query("SELECT passwd FROM comptes WHERE user='$this->user'"); // Selectionne le mot de passe suivant le login
               $row = mysql_fetch_array($result);
               $vpasswd = $row["passwd"];
               if($vpasswd == $this->passwd) // Verifie si le mot de passe est correct
               {
                   $admin = base6_encode("$this->user:$this->passwd"); // Encode les informations
                   $_SESSION["$this->name_session"] = $admin;
                   header("location: $this->page"); // Recharge la page
               }
               else // Si le mot de passe est incorrect
               {
                   echo "<script> setTimeout(\"window.location=\'$this->page\';\", $this->redir_time); </script>"; // Redirige apres 1.50 sec
                   echo "Identifiants invalides...";
               }
           }
           else // Si un ou les champs sont vides
           {
               echo "<script> setTimeout(\"window.location=\'$this->page\';\", $this->redir_time); </script>";
               echo "Les champs sont vides...";
           }
           die(); // Arrete le chargement de la page
       }
 
       function is_admin()
       {
 
           $admin = $_SESSION["$this->name_session"];
           $admin = base64_decode($admin); // Decode les informations
           $admin = explode(":", $admin); // Separe le mot de passe du login
           $user = $admin[0]; // Login
           $passwd = $admin[1]; // Mot de passe
 
           if ($user != "" and $passwd != "") { // Verifie que les informations du cookie ne sont pas vides
               $query = mysql_query("SELECT passwd FROM comptes WHERE user='$user'"); // Selectionne le mot de passe suivant le login
               $row = mysql_fetch_array($query);
               $vpasswd = $row["passwd"];
               if($vpasswd == $passwd && $vpasswd != "") { // Verifie que le mot de passe est correct et qu'il n'est pas vide
                   return 1; // Retourne 1, l'utilisateur est deja logger
               }
           }
           return 0; // Retourne 1, l'utilisateur n'est pas logger
       }
 
       function delog()
       {
           session_unset(); // Detruit la session
           header("location: $this->page"); // Recharge la page
       }
 
      function get_name()
       {
         $admin = $_SESSION["$this->name_session"];
         $admin = base64_decode($admin); // Decode le cookie
         $admin = explode(":", $admin); // Separe le mot de passe du login
         $user = $admin[0]; // Login
         echo $user; // Affiche le login
     }
 }
 
 $admin= new auth;
 
 ?>
lors de son execution le navigatuer me retourne ce message d' erreur
Cannot send session cookie - headers already sent by (output started at d:\labs\codes_sources\authentification.php:2)
bnoir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 16h14   #2
Membre Expert
 
Avatar de David Guillot
 
Homme David Guillot
Chef de projet en SSII
Inscription : mars 2004
Messages : 879
Détails du profil
Informations personnelles :
Nom : Homme David Guillot
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2004
Messages : 879
Points : 1 149
Points : 1 149
salut

, tu as un envoi de code au navigateur quelque part avant ton session_start()
__________________
Avant de poser une question ici :

Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé
David Guillot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 09h28   #3
Invité régulier
 
Inscription : juillet 2006
Messages : 50
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 50
Points : 8
Points : 8
Par défaut le code

non le seul code que j'ai creer
c'est ce qu m'as etonné
bnoir est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h37.


 
 
 
 
Partenaires

Hébergement Web