Verificação de usuário logado em php
Olá para todos !
Pessoal estou com uma dificuldade aqui, como iniciante em php estou queimando a Cuca mas sei que para os programados desse forum vai ser moleza.
tenho um sistema de login feito com a junção de HTML, CSS, E PHP ate ai tudo bem. o sistema esta funcionado a mil por hora, mas o que quero fazer agora e o seguinte:
O usuário loga no sistema ate ai tudo bem, porem se eu abrir uma nova pagina do sistema e logar com este mesmo usuário o sistema deveria informar que este já esta logado ou em uso.
imagino que seja um nível de segurança, eu consigo logar no sistema quantas vezes eu quiser com o mesmo usuário.
A logica que quero e a seguinte:
quando eu tentar logar mais de uma vez com o mesmo usuário no sistema o mesmo venha informar que o usuário já esta logado,
ou seja que quando for efetuar o login ele meio que verifique se já foi logado esse usuário, como eu faria isso.
segue abaixo os códigos que estou utilizando.
1 pagina em HTML com o formulário enviando suas informações via post para uma pagina em php
2 pagina PHP verifica os dados se existem no banco de dados e chama a pagina que seria a Desktop do sistema.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?php
//SE A SEÇÃO ESTIVER ATIVA REDIRECIONA PARA A PAGINA DESKTOP NÃO DEIXANDO O USUÁRIO VOLTAR PARA A TELA DE LOGIN
// SOMENTE SE O USUÁRIO DESLOGAR DO SISTEMA
ob_start();
session_start();
if(isset($_SESSION['usuario']) &&(isset($_SESSION['senha']))){
header('location:Desktop.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">](http://www.w3.org/1999/xhtml)**
**<head>**
**<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />**
**<title>AJE-NORDESTE VER 1.0</title>**
**<style>**
body{ background-color: #333333;}
.form{
width:0px;
margin-left:120px;
margin-top:-20px;
border:solid #000 0px;
background-color:#FFF;
float:left;
}
.entre{
width:500px;
height:300px;
margin:150px auto;
border:solid #000 1px;
background-color:#FFF;
border-radius:10px;
}
**</style>**
**</head>**
**<body>**
**<div class="entre"><br />**
**<div class="form">**
**<p align="center">**
**<img src="imagens/logo.jpg" alt="login" /></p>**
**<form action="logar.php" method="post" name="" id="">**
**<table width="250" border="0">**
** <tr>**
** <td><font face="Arial">login</font>:</td>**
** <td><input name="usuario" type="text" id="usuario" /></td>**
** </tr>**
** <tr>**
** <td><font face="Arial">Senha</font>:</td>**
** <td><input name="senha" type="password" id="senha" /></td>**
** </tr>**
<!-------------NESTE PONTO ABAIXO ESTA MONTADO A FUNCÇAO QUE JERA A OPÇÃO DE NIVEL DE USUÁRIO-------------->
** <tr>**
** <td><font face="Arial">Nivel</font>:</td>**
** <td>**
**<?php**
**function combonivel($lista = false){**$montarArray = array("","1","ADMINISTRADOR", "ADVOGADO", "SECRETÁRIA","ESTAGIARIO");
if ($lista == ""){
foreach ($montarArray as $i){
$resultArray .= "<option value=\"{$i}\">{$i}</option>";
}
return $resultArray;
}
else {
foreach ($montarArray as $i){
if ($lista == $i){
$resultArray .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>";
}
else {
$resultArray .= "<option value=\"{$i}\">{$i}</option>";
}
}
return $resultArray;
}
}
**?>**
**<select name="nivel" id="nivel">**
** <?php echo combonivel(); ?>**
**</select>**
**</td>**
** </tr>**
<!------NESTE PONTO ACIMA ESTA MONTADO A FUNCÇAO QUE JERA A OPÇÃO DE NIVEL DE USUÁRIO-------->
** <tr>**
** <td><br /><input type="submit" name="logar" value=" logar "></td>**
** <td> </td>**
** </tr>**
**</table>**
**</form>**
**</div>**
**</div>**
**</body>**
**</html>**
------------------------------------------------------------------------pagina em pgp------------------------------------------------------------------------
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<?php
include "conexao.php";
session_start();
if (isset($_POST['logar'])){
// RECUPERAR DADOS FORM
@$usuario = trim(strip_tags($_POST['usuario']));
@$senha = trim(strip_tags($_POST['senha']));
@$nivel = trim(strip_tags($_POST['nivel']));
}
//SELECIONAR BANCO DE DADOS
$select = "SELECT * FROM login WHERE usuario=:usuario AND senha=:senha AND nivel=:nivel";
try {
$result = $conexao->prepare($select);
$result->bindParam(':usuario', $usuario, PDO::PARAM_STR);
$result->bindParam(':senha',$senha, PDO::PARAM_STR);
$result->bindParam(':nivel',$nivel, PDO::PARAM_STR);
$result->execute();
$contar = $result->rowCount();
if ($contar>0){
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
$nivel = $_POST['nivel'];
$_SESSION['usuario'] = $usuario;
$_SESSION['senha'] = $senha;
$_SESSION['nivel'] = $senha;
header("Location: Desktop.php");
}else{
unset ($_SESSION['usuario']);
unset ($_SESSION['senha']);
echo "<META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'>
<script type=\"text/javascript\">
alert(\" DADOS INCORRETOS FAVOR VERIFICAR.\");
</script>";
}
} catch(PDOException $e) {
echo $e;
}
?>
Espero esta sendo claro com as informações deis de já agradeço...
Discussão (6)
Carregando comentários...