Gestion de sortie des utilisateurs d'une application web

Fermé
Profil bloqué - Modifié par dangelot le 6/05/2014 à 15:38
 dangelot05 - 10 févr. 2015 à 13:34
Bonjour,

Je tiens à remercier d'avance toute personne aimable qui m'aidera avec ce code pour que je parvienne à gérer toute sortie des utilisateurs de mon application web conçu avec PHP.
J'explique un peu comment fonctionne mon application: lorsqu'un utilisateur se connecte si mot de passe et Identifiant correcte, il est automatiquement enregistré dans une table qui sert à vérifier l'heure d'entrée et l'heure de sortie et opération effectuée.
Alors, à l'entré d'utilisateur je suis parvenu à l'enregistrer en utilisant les sessions; voici une petite portion de mon code de connexion à l'application

<?php
require_once("../connexion/connexion.php");
//Type d'opération
$op='Connexion';
$user=mysql_real_escape_String($_POST['user']);
$pswd=mysql_real_escape_String(sha1($_POST['pswd']));

$annee=date('Y');
$mois=date('m');
$jour=date('d');
$heure=date('H');
$minute=date('i');
$seconde=date('s');
$date=$annee.'/'.$mois.'/'.$jour;
$h=$heure.':'.$minute.':'.$seconde;

if(empty($user) or empty($pswd))
{
echo '<script language="javascript">alert("Vous devez entrer votre login ou mot de passe")</script>';
}
else
{
$exist=$con->query("select Nom,Motdepasse from employes where Nom='$user' and Motdepasse='$pswd'");
$nb=$exist->fetch();
if($nb != 0)
{
$choix=$con->query("select Nom,Droit from employes where Nom='$user'");
$data=$choix->fetch();
if($data['Droit']=='administrateur')
{
session_start();
$_SESSION['nom']=$data['Nom'];
$_SESSION['droit']=$data['Droit'];
header("location:../files/administration.php");
$con->exec("insert into hote(Nom,Motdepasse,TypeOp,Dateentre,Heure) values('$user','$pswd','$op','$date','$h')");
}
else if($data['Droit']=='responsableST')
{
session_start();
$_SESSION['nom']=$data['Nom'];
$_SESSION['droit']=$data['Droit'];
header("location:administration.php");
$con->exec("insert into hote(Nom,Motdepasse,TypeOp,Dateentre,Heure) values('$user','$pswd','$op','$date','$h')");
}
}
else
{
echo'<script language="javascript">alert("Nom d\'utilisateur ou mot de passe incorrect!!")</script>';
}
}
?>
Ceci sert à vérifier l'utilisateur a le droit de se connecter à l'application et sur chaque vérification il y a un enregistrement qui s'effectue $con->exec("insert into hote(Nom,Motdepasse,TypeOp,Dateentre,Heure) values('$user','$pswd','$op','$date','$h')");

Et voici la page menu principal où arrive celui qui est connecté

<?php
session_start();
if(!isset($_SESSION['nom']) OR ($_SESSION['droit'] != 'administrateur') AND ($_SESSION['droit'] != 'responsableST'))
{
header("location:../index.php");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>GOSHEN SUPER BAKARY</title>
<link rel="stylesheet" type="text/css" href="../style.css" />
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="iecss.css" />
<![endif]-->
<center><h1><font color='#FF0000'>BIENVENUE DANS E-BUSINESS DE GOSHEN SUPER BAKERY-BURUNDI</font></h1></center>
<script type="text/javascript" src="../js/boxOver.js"></script>
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript" src="../js/easySlider1.7.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#slider").easySlider({
auto: true,
continuous: true
});
});
</script>
</head>
<body>
<div class="top_bar">
<p style="padding-left:800px; color:white;font-size:14px">
<?php
echo'Bonjour '.$_SESSION['nom'].'</br> <a href="../files/Deconnexion.php"><b style="color:lime">Deconnexion</b></a>';
?>
</p>
</div>
<div id="menu_tab">
<div class="left_menu_corner"></div>
<ul class="menu">
<li><a href="employes.php" class="nav4">EMPLOYES</a></li>
<li class="divider"></li>
<li><a href="fournisseur.php" class="nav4">FOURNISSEUR</a></li>
<li class="divider"></li>
<li><a href="aideadmin.php" class="nav4">AIDE</a></li>
<li class="divider"></li>
</ul>
<div class="right_menu_corner"></div>
</div><!-- end of menu tab -->
</body>
</html>

Ceci est le fonctionnement de mon application, alors je voulais si possible de m'aider avec le code qui enregistrera l'utilisateur lorsqu'il cliquera sur le lien Deconnexion
<?php
echo'Bonjour '.$_SESSION['nom'].'</br> <a href="../files/Deconnexion.php"><b style="color:lime">Deconnexion</b></a>';
?>
qu'il puisse être enregistré dans la base de données.
Et comme SBDR j'ai utilisé MYSQL
Pour plus d'information voici comment est concu la page Deconnexion.php:
<?php
// On appelle la session
session_start();
// On écrase le tableau de session
$_SESSION = array();
// On détruit la session
session_destroy();
header("location: ../files/authentification.php");
?>

Merci d'avance à tous!!!

A voir également:

2 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
6 mai 2014 à 18:25
Bonjour !

Pour commencer, je ne suis pas sûr que stocker le mot de passe dans cette table (Qui sert de log si j'ai bien compris) soit une bonne idée.

Sinon, je ne vois pas ce qui te gène, sur ta page de déconnexion, tu a simplement à te connecter à ta bdd et faire ta requête de façon presque identique à celle fait lors du login ($op sera plutôt Déconnexion, tu génère ta date et heure de la même manière, et $user sera remplit via $_SESSION["nom"])
0
Il y a plus d'une année que je suis entrain de chercher comment peux-je géré la connexion et la déconnexion d'utilisateur d'une application web. Mes frères et soeurs je viens de trouver la réponse et suis content et Merci Nhay de ton idée d'où est venue mon inspiration et suis parvenue à bien Gérer mes utilisateurs sachant qu'ils sont connectés ou déconnectés.
Voici comment j'ai fait:
1. Le code d'ouverture d'une session comme en facebook: Bonjour Dangelot
Il faut insérer cette portion de code sur toute les pages de votre application
 <?php
session_start();
if(!isset($_SESSION['nom']) OR ($_SESSION['Droit'] != 'administrateur') AND ($_SESSION['Droit']=='comptable'))
{
header("location:../documentation/index.php");
}
?>
et voici son affichage sur la même feuille quelque part selon votre choix
 <?php
echo'<p style="padding-left:690px; padding-top:45px;">Bonjour <i style="color:#990ff0;">'.$_SESSION['nom'].'</i> <a href="../Fonctions/deconnexion1.php?nom='.$_SESSION['nom'].'&droit='.$_SESSION['Droit'].'"><b style="color:#96ebac;">Deconnexion</b></a></p>';

?>

2. Si vous regardez bien sur ce code d'affichage il y a présence de deux valeurs hypertextes
 <a href="deconnexion1.php?nom='.$_SESSION['nom'].'&droit='.$_SESSION['Droit'].'">
dont je veux récupérer dans le fichier PHP de deconnexion pour gérer la sortie du système d'information.
3. Voici le fichier PHP d'authentification(Entrée au système)
 
<?php
include("connexion/connexion.php");
$user=$_POST['user'];
$mot=sha1($_POST['mot']);
$op="connexion";
//Date de la connexion
$annee=date('Y');
$mois=date('m');
$jour=date('d');

//Heure de la connexion
$heure=date('H');
$minute=date('i');
$seconde=date('s');

$date=$annee.'-'.$mois.'-'.$jour;
$H=$heure.':'.$minute.':'.$seconde;

if(empty($user) or empty($mot))
{
echo '<script language="javascript">alert("Nom d\'utilisateur ou mot de passe incorrect!!")</script>';
}
else
{
$exist=$con->query("select Nom,Prenom,Fonction,Telephone,Motdepasse from employes where (Nom='$user' and Motdepasse='$mot') and Etat='activer'");
$nb=$exist->fetch();
if($nb != 0)
{
$choix=$con->query("select Nom,Prenom,Fonction,Telephone,Motdepasse from employes where Nom='$user'");
$data=$choix->fetch();
if($data['Fonction']=='administrateur')
{
session_start();
$_SESSION['nom']=$data['Nom'];
$_SESSION['Droit']=$data['Fonction'];
header("location:documentation/menu.php");
$con->exec("insert into hote(Nom,Prenom,Fonction,Telephone,DateConn,Heure,Validite) values('$user','".$data['Prenom']."','".$data['Fonction']."',
'".$data['Telephone']."','$date','$H','$op')");
}
elseif($data['Fonction']=='comptable')
{
session_start();
$_SESSION['nom']=$data['Nom'];
$_SESSION['Droit']=$data['Fonction'];
header("location:../documentation/menu.php");
$con->exec("insert into hote(Nom,Prenom,Fonction,Telephone,DateConn,Heure,Validite) values('$user','".$data['Prenom']."','".$data['Fonction']."',
'".$data['Telephone']."','$date','$H','$op')");
}
elseif($data['Fonction']=='receptionniste')
{
session_start();
$_SESSION['nom']=$data['Nom'];
$_SESSION['Droit']=$data['Fonction'];
header("location:../documentation/menu.php");
$con->exec("insert into hote(Nom,Prenom,Fonction,Telephone,DateConn,Heure,Validite) values('$user','".$data['Prenom']."','".$data['Fonction']."',
'".$data['Telephone']."','$date','$H','$op')");
}
elseif($data['Fonction']=='responsable_bar')
{
session_start();
$_SESSION['nom']=$data['Nom'];
$_SESSION['Droit']=$data['Fonction'];
header("location:../documentation/menu.php");
$con->exec("insert into hote(Nom,Prenom,Fonction,Telephone,DateConn,Heure,Validite) values('$user','".$data['Prenom']."','".$data['Fonction']."',
'".$data['Telephone']."','$date','$H','$op')");
}
elseif($data['Fonction']=='responsable_resto')
{
session_start();
$_SESSION['nom']=$data['Nom'];
$_SESSION['Droit']=$data['Fonction'];
header("location:../documentation/menu.php");
$con->exec("insert into hote(Nom,Prenom,Fonction,Telephone,DateConn,Heure,Validite) values('$user','".$data['Prenom']."','".$data['Fonction']."',
'".$data['Telephone']."','$date','$H','$op')");
}
else
{
echo'<script language="javascript">alert("Vueillez contacter l\'administrateur pour l\'activation de ton compte ou le concepteur de cette
application pour la maintenance si ça persiste au numéro +257 75 739 722!!!")</script>';
}
}
else
{
echo'<script laguage="javascript">alert("Nous vous saluons au Nom PUISSANT de JESUS CHRIST tout en vous informant que vous n\'êtes plus en
services pour le moment, veuillez verifier votre nom d\'utilisateur ou mot de passe!!!!!!")</script>';
}
}
?>
Et l'autre fichier de gestion de sortie du système

<?php
include("../connexion/connexion.php");
$user=$_GET['nom'];
$droit=$_GET['droit'];
$op='deconnexion';
//Date de la connexion
$annee=date('Y');
$mois=date('m');
$jour=date('d');

//Heure de la connexion
$heure=date('H');
$minute=date('i');
$seconde=date('s');

$date=$annee.'-'.$mois.'-'.$jour;
$H=$heure.':'.$minute.':'.$seconde;

$exist=$con->query("select Nom,Prenom,Fonction,Telephone,Motdepasse from employes where (Nom='$user' and Fonction='$droit') and Etat='activer'");
$nb=$exist->fetch();
if($nb != 0)
{
$choix=$con->query("select Nom,Prenom,Fonction,Telephone,Motdepasse from employes where Nom='$user'");
$data=$choix->fetch();
if($data['Fonction']=='administrateur')
{
session_start();
$_SESSION = array();//Ecrase tableau de session
session_unset(); //Detruit toutes les variables de la session en cours
session_destroy();//Destruit la session en cours
header("location: ../index.php"); // redirige l'utilisateur
$con->exec("insert into hote(Nom,Prenom,Fonction,Telephone,DateConn,Heure,Validite) values('$user','".$data['Prenom']."','".$data['Fonction']."',
'".$data['Telephone']."','$date','$H','$op')");
}
elseif($data['Fonction']=='comptable')
{
session_start();
session_start();
$_SESSION = array();//Ecrase tableau de session
session_unset(); //Detruit toutes les variables de la session en cours
session_destroy();//Destruit la session en cours
header("location: ../index.php"); // redirige l'utilisateur
$con->exec("insert into hote(Nom,Prenom,Fonction,Telephone,DateConn,Heure) values('$user','".$data['Prenom']."','".$data['Fonction']."',
'".$data['Telephone']."','$date','$H','$op')");
}
elseif($data['Fonction']=='receptionniste')
{
session_start();
session_start();
$_SESSION = array();//Ecrase tableau de session
session_unset(); //Detruit toutes les variables de la session en cours
session_destroy();//Destruit la session en cours
header("location: ../index.php"); // redirige l'utilisateur
$con->exec("insert into hote(Nom,Prenom,Fonction,Telephone,DateConn,Heure) values('$user','".$data['Prenom']."','".$data['Fonction']."',
'".$data['Telephone']."','$date','$H','$op')");
}
elseif($data['Fonction']=='responsable_bar')
{
session_start();
session_start();
$_SESSION = array();//Ecrase tableau de session
session_unset(); //Detruit toutes les variables de la session en cours
session_destroy();//Destruit la session en cours
header("location: ../index.php"); // redirige l'utilisateur
$con->exec("insert into hote(Nom,Prenom,Fonction,Telephone,DateConn,Heure) values('$user','".$data['Prenom']."','".$data['Fonction']."',
'".$data['Telephone']."','$date','$H','$op')");
}
elseif($data['Fonction']=='responsable_resto')
{
session_start();
session_start();
$_SESSION = array();//Ecrase tableau de session
session_unset(); //Detruit toutes les variables de la session en cours
session_destroy();//Destruit la session en cours
header("location: ../index.php"); // redirige l'utilisateur
header("location:../documentation/menu.php");
$con->exec("insert into hote(Nom,Prenom,Fonction,Telephone,DateConn,Heure) values('$user','".$data['Prenom']."','".$data['Fonction']."',
'".$data['Telephone']."','$date','$H','$op')");
}
else
{
echo'<script language="javascript">alert("Vueillez contacter l\'administrateur pour l\'activation de ton compte ou le concepteur de cette
application pour la maintenance si ça persiste au numéro +257 75 739 722!!!")</script>';
}
}
else
{
echo'<script laguage="javascript">alert("Nous vous saluons au Nom PUISSANT de JESUS CHRIST tout en vous informant que vous n\'êtes plus en
services pour le moment, veuillez verifier votre nom d\'utilisateur ou mot de passe!!!!!!")</script>';
}
?>

Ceci est la vraie gestion d'entrée et sortie d'un utilisateur d'une application web!
0