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 :

pb creation de session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 50
    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 : 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
     
        <?
     
        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)

  2. #2
    Invité
    Invité(e)
    Par défaut
    salut

    , tu as un envoi de code au navigateur quelque part avant ton session_start()

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 50
    Par défaut le code
    non le seul code que j'ai creer
    c'est ce qu m'as etonné

Discussions similaires

  1. creation une session
    Par ulysse031 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 18/04/2011, 13h39
  2. probleme creation de session
    Par elderion dans le forum Apache
    Réponses: 1
    Dernier message: 27/11/2008, 16h21
  3. Obtenir IP client lors de creation de session
    Par kmdkaci dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 15/09/2008, 12h01
  4. creation de session
    Par guigo dans le forum Langage
    Réponses: 3
    Dernier message: 12/11/2006, 16h28
  5. Identification Access entrainant créeation de session
    Par killerhertz dans le forum ASP
    Réponses: 12
    Dernier message: 30/05/2006, 20h56

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