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 23/10/2011, 16h14   #1
Membre à l'essai
 
Inscription : septembre 2008
Messages : 102
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 102
Points : 24
Points : 24
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 :
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 :
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 :
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>
?>
//////////////////////////////////////////////////////////////////////////////////////
Amel_B est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2011, 09h01   #2
Membre habitué
 
Avatar de rinuom99
 
Étudiant
Inscription : août 2007
Messages : 238
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2007
Messages : 238
Points : 125
Points : 125
Envoyer un message via MSN à rinuom99
bonjour

essayer ça,

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
<?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 :
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 :
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 :
 $_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 :
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 ;
__________________
Si tu peux voir détruit l'ouvrage de ta vie.
Et sans dire un seul mot te mettre à rebâtir,
Tu seras un Homme, mon fils.
rinuom99 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 11h39.


 
 
 
 
Partenaires

Hébergement Web