In the system I'm doing there are 3 panels, being a users table for each panel and the public site. When the user logs into any of the three panels, and re-accesses the public site, more information would appear. Summing up is a "sign in to see". Each panel is in a subdomain and the public in the main. I'm not able to get the information back that this user is logged in to the public site, and honestly I do not know if there is any way to do that.
HEAD.php
<?php
$host = 'localhost';
$usuario = 'psaude';
$senha = '';
$banco = 'psaude';
$conn = @mysql_connect($host, $usuario, $senha) or die(mysql_error());
$db = mysql_select_db($banco, $conn) or die(mysql_error());
$charset = mysql_set_charset('utf8');
function __autoload($class)
{
require_once(dirname(__FILE__) . "/../class/{$class}.class.php");
}
$objLogin = new Login();
if (!$objLogin->verificar('/login'))
exit;
$query = mysql_query("SELECT * FROM users WHERE chns = {$objLogin->getID()}");
$usuario = mysql_fetch_object($query);
$user_mostra = $usuario->id;
$user_nome = $usuario->nome;
$user_cnhs = $usuario->chns;
?>
CLASS.php (Login.class.php)
<?php
class Login {
private $tabela, $campoID, $campoLogin, $campoSenha, $campoStatus, $campoAtivo;
function __construct($tabela = 'users', $campoID = 'chns', $campoStatus = 'status', $campoAtivo = 'dob', $campoLogin = 'email', $campoSenha = 'senha') {
// Iniciando sessão
@session_start();
// Definindo atributos
$this->tabela = $tabela;
$this->campoID = $campoID;
$this->campoLogin = $campoLogin;
$this->campoSenha = $campoSenha;
$this->campoStatus = $campoStatus;
$this->campoAtivo = $campoAtivo;
}
// ------------------------------------------------------------------------
/**
* Retornando login do usuário que está na sessão
*
* @access public
* @return string
*/
function getLogin() {
return $_SESSION[$this->campoLogin];
}
// ------------------------------------------------------------------------
/**
* Retornando ID do usuário que está na sessão
*
* @access public
* @return integer
*/
function getID() {
return $_SESSION[$this->campoID];
}
// ------------------------------------------------------------------------
/**
* Trata as informações recebidas, procura o usuário no banco de dados e, se encontrado,
* registra as informações na sessão.
*
* @access public
* @param string
* @param string
* @param string
* @return boolean
*/
function logar($login, $senha, $status, $dob, $redireciona = null) {
// Tratando as informações
$login = mysql_real_escape_string($login);
$senha = mysql_real_escape_string($senha);
$status = mysql_real_escape_string($status);
// Verifica se o usuário existe
$query = mysql_query("SELECT {$this->campoID}, {$this->campoLogin}, {$this->campoSenha}, {$this->campoAtivo}
FROM {$this->tabela}
WHERE {$this->campoLogin} = '{$login}' AND {$this->campoSenha} = '{$senha}' AND {$this->campoAtivo} = 'ativo'");
// $query_1 = mysql_query("UPDATE status = '$status' WHERE uid = '{$this->campoID}'");
// Se encontrado um usuário
if(mysql_num_rows($query) > 0)
{
// Instanciando usuário
$usuario = mysql_fetch_object($query);
// Registrando sessão
$_SESSION[$this->campoID] = $usuario->{$this->campoID};
$_SESSION[$this->campoLogin] = $usuario->{$this->campoLogin};
$_SESSION[$this->campoSenha] = $usuario->{$this->campoSenha};
$_SESSION[$this->campoAtivo] = $usuario->{$this->campoAtivo};
// Se informado redirecionamento
if ($redireciona !== null)
header("Location: {$redireciona}");
else
return true;
}
else
return false;
}
// ------------------------------------------------------------------------
/**
* Verifica se o usuário está logado
*
* @access public
* @param string
* @return boolean
*/
function verificar($redireciona = null) {
// Se as sessões estiverem setadas
if(isset($_SESSION[$this->campoID]) and isset($_SESSION[$this->campoLogin]) and isset($_SESSION[$this->campoSenha]))
return true;
else
{
if (headers_sent()) {
die('<meta http-equiv="Refresh" content="0; url=../login">');
}else{
exit(header("Location: /user.php"));
}
// Se informado redirecionamento
if ($redireciona !== null)
header("Location: {$redireciona}");
return false;
}
}
// ------------------------------------------------------------------------
/**
* Finaliza a sessão do usuário
*
* @access public
* @param string
* @return void
*/
function logout($redireciona = null) {
// Limpa a Sessão
$_SESSION = array();
// Destroi a Sessão
session_destroy();
// Modifica o ID da Sessão
session_regenerate_id();
// Se informado redirecionamento
if ($redireciona !== null)
header("Location: {$redireciona}");
}
}
?>
When you type the information in the form, it sends to the file logar
via post
logar.php
<?php
require_once('../config/conn.php');
$objLogin = new Login();
$login = $_POST['email'];
$senha = $_POST['senha'];
$status = "";
$dob = "";
date_default_timezone_set('America/Sao_Paulo');
$data_login = date("d/m/Y");
$hora_login = date("h:i");
if ($objLogin->logar($login, $senha, $status, $dob))
// Retornando falso
echo false;
else{
// Retornando mensagem de erro
echo 'Login ou senha inválidos. <br>Caso o problema persista, tente redefinir sua senha.';
}
$executa = "UPDATE users SET status = 'online', data_login = '$data_login', hora_login = '$hora_login' WHERE email = '$login'";
$executaQr = mysql_query($executa) or die;
if ($executaQr){ echo false; }
?>
CONFIG.php
<?php
$host = 'localhost';
$usuario = 'root';
$senha = '';
$banco = 'psaude';
$conn = @mysql_connect($host, $usuario, $senha) or die(mysql_error());
$db = mysql_select_db($banco, $conn) or die(mysql_error());
$charset = mysql_set_charset('utf8');
function __autoload($class)
{
require_once(dirname(__FILE__) . "/../class/{$class}.class.php");
}
?>