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 :

gestion des sessions


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 204
    Par défaut gestion des sessions
    s'il vous plait j'ai fait 3 pages authentification pour la deuxième page qui affiche combien de temps la session est ouverte. mais comment enregistrer ces session pour afficher par exemple un utilisateur a ouvert la session à tel heure et fermer à tel heure.cela pour but que l'administrateur surveille le travail des techniciens car ya ceux qui disent on travail mais le travail ne marche pas.
    voilà les 3 fichiers:
    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
     
     
    /////////////////////////////////////////////////////////////////////////////////////////
    <?php 
    //===============================================
    //===============================================
    //fichier login.php
     
    session_start();
    ?>
     
    <html>
    <form name="form1" method="post">
    <table>
    <tr><td>Username </td><td><input type="text" name="text1"></td></tr>
    <tr><td>Password</td><td><input type="password" name="pwd"></td></tr>
    <tr><td><input type="submit" value="SignIn" name="submit1"> </td></tr>
    </table>
    </form>
    </html>
     
    <?php
    if($_POST['submit1'])
    {
    $v1 = "aaa";
    $v2 = "123";
    $v3 = $_POST['text1'];
    $v4 = $_POST['pwd'];
    if($v1 == $v3 && $v2 == $v4)
    {
    $_SESSION['luser'] = $v1;
    $_SESSION['start'] = time(); // taking now logged in time
    $_SESSION['expire'] = $_SESSION['start'] + (10) ; // ending a session in 10 seconds from the starting time
    header('Location: <a href="http://localhost/session/homepage.php&#39;);" target="_blank">http://localhost/session/homepage.php');</a>
    }
    else
    {
    echo "Please enter Username or Passwod again !";
    }
     
    }
    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
    //===============================================
    //===============================================
    //fichier homepage
     <?php
    session_start();
     
    if(!isset($_SESSION['luser']))
    {
        echo "Please Login again";
        echo "<a href='http://localhost/session/login.php'>Click Here to Login</a>";
     
    }
    else
    {
     
        $now = time(); // checking the time now when home page starts
     
        if($now > $_SESSION['expire'])
        {
            session_destroy();
            echo "Your session has expire ! <a href='http://localhost/session/login.php'>Login Here</a>";
        }
        else
        { //starting this else one [else1]
     
    ?>
     
     
    <!-- From here all HTML Coding can be done -->
     
     
    <html>
    Welcome <?php echo $_SESSION['luser'].'======>'.'start=====>'.$_SESSION['start'].'now=====>'.$now.'expire====>'.$_SESSION['expire'];
    $temp=$now-$_SESSION['start'];
    echo '<BR> la durée de connexion est==>'.$temp.'seconde';
    echo '<BR>';
    if ($now==$_SESSION['expire'])
    {
    echo 'la durée est'.$temp;
    }
            echo "<a href='http://localhost/session/logout.php'>LogOut</a>";
            ?>
    </html>
     
    <?php
     }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //===============================================
    //===============================================
    //fichier logout
    <?php
    session_start();
    if ($now==$_SESSION['expire'])
     
    session_destroy();
    header('Location: <a href="http://localhost/session/login.php&#39;);" target="_blank">http://localhost/session/login.php');</a>
    ?>
    //////////////////////////////////////////////////////////////////////////////////////

  2. #2
    Membre éclairé Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Par défaut
    bonjour

    essayer ça,

    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
    <?php
     
    session_start();
     
    if(!isset($_SESSION['luser']))
    {
        echo "Please Login again";
        echo "<a href='login.php'>Click Here to Login</a>";
    }
    else
    {
        $now = time(); // checking the time now when home page starts
     
    	//*********** enregister la derniere action
     
        if($now > $_SESSION['expire'])
        {
    	    $id=$_SESSION['id'];
          // $derniere_action=date('Y-m-j H:i:s');
     //update de la base de données
     $update_="UPDATE connexions SET online='0' WHERE id='$id'";
     mysql_query($update_, $connexion) or die (mysql_error());
     
            session_destroy();
            echo "Your session has expire ! <a href='login.php'>Login Here</a>";
        }
        else
        { //starting this else one [else1]
        $_SESSION['expire'] = $now + (60) ; // initialiser le compteur a chaque action
     $id=$_SESSION['id'];
     $derniere_action=date('Y-m-j H:i:s');
     //update de la base de données
     $update="UPDATE connexions SET derniere_action='$derniere_action' WHERE id='$id'";
     mysql_query($update, $connexion) or die (mysql_error());
     
    echo "<html>";
    echo " welcome ". $_SESSION['luser']."======>"."start=====>".$_SESSION['start']."now=====>".$now."expire====>".$_SESSION['expire'];
    $temp=$now-$_SESSION['start'];
    echo '<BR> la durée de connexion est==>'.$temp.'seconde';
    echo '<BR>';
    if ($now==$_SESSION['expire'])
    {
    echo 'la durée est'.$temp;
    }
            echo "<a href='logout.php'>LogOut</a>";
    		echo "</br>";
    		echo "<a href='index.php'>une action</a>";
     
    echo '</html>';
     
     
     }
    }
    ?>
    login.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
    <?php 
    //===============================================
    //===============================================
    //fichier login.php
     
    session_start();
    ?>
     
    <html>
    <form name="form1" method="post" action="login.php">
    <table>
    <tr><td>Username </td><td><input type="text" name="text1"></td></tr>
    <tr><td>Password</td><td><input type="password" name="pwd"></td></tr>
    <tr><td><input type="submit" value="SignIn" name="submit1"> </td></tr>
    </table>
    </form>
    </html>
     
    <?php
    if(isset ($_POST['submit1']))
    {
    $v1 = "aaa";
    $v2 = "123";
    $v3 = $_POST['text1'];
    $v4 = $_POST['pwd'];
    if(($v1 == $v3) && ($v2 == $v4))
    {
    // l'autentification normalement se faire  avec une base de données
     
     
    //********* enregister l'utilisateur connecté sur la nouvelle table ( connexion réussite 
    $date_now =date('Y-m-j H:i:s');
    $insertuser="INSERT INTO connexions (user, date_connexion, derniere_action, online) VALUES ('$v3','$date_now','$date_now', '1')";
    mysql_query($insertuser, $connexion) or die (mysql_error());
     
    // recupérer id de l'authentification
    $select_conn="SELECT id FROM connexions WHERE user='$v3' AND date_connexion='$date_now' AND derniere_action='$date_now' AND online='1'";
    $result=mysql_query($select_conn, $connexion) or die (mysql_error());
    $row_id=mysql_fetch_assoc ($result);
    $id=$row_id['id'];
     
    $_SESSION['id']=$id;
    $_SESSION['luser'] = $v1;
    $_SESSION['start'] = time(); // taking now logged in time
    $_SESSION['expire'] = $_SESSION['start'] + (60) ; // ending a session in 10 seconds from the starting time
    //header('Location:index.php');
      header ("location:index.php");
    }
    else
    {
    echo "Please enter Username or Passwod again !";
    }
     
    }
    ?>
    logout.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
    <?php
     
    //fichier logout
    session_start();
    //if (isset($_SESSION['expire']))
      $id=$_SESSION['id'];
     $derniere_action=date('Y-m-j H:i:s');
     //update de la base de données
     $update="UPDATE connexions SET derniere_action='$derniere_action', online='0' WHERE id='$id'";
     mysql_query($update, $connexion) or die (mysql_error());
     
    session_destroy();
    header ("location:login.php");
    ?>
    sans oublier d'ajouter l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $_SESSION['expire'] = $now + (60) ;
    sur tout les pages, pour initialiser le compteur, ( la session se ferme après 1 minute sans aucune action de l'utilisateur )

    pour la table de la base de données,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE `connexions` (
      `id` int(11) NOT NULL auto_increment,
      `user` varchar(20) NOT NULL,
      `date_connexion` datetime NOT NULL,
      `derniere_action` datetime NOT NULL,
      `online` int(1) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

Discussions similaires

  1. Gestion des sessions avec applet
    Par Mister Nono dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 01/08/2006, 19h27
  2. [JSP] Gestion des sessions
    Par ze veritable farf dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 28/06/2006, 11h44
  3. [Struts][JSP]gestion des session en JSP
    Par zola dans le forum Struts 1
    Réponses: 6
    Dernier message: 27/04/2006, 17h23
  4. gestion des sessions
    Par jeff_! dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 23h09
  5. [tomcat] gestion des sessions
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/10/2004, 15h25

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