hola Vendetta, te recomendaria utilizar sessiones para administrar el acceso a los usuarios
index.php
Código php:
Ver original<?php
//incluimos las clases o un archivo de configuracion (recomendado)
include 'config.php';
//creo el formulario para el logue, luego hago las comparaciones para ver si lo muestro o no, mientras tanto lo mantengo en una variable
$formLogin = ' <form action="proceso.php" method="POST">
<label>Usuario</label>
<input type="text" name="login" class="form" />
<label>Password</label>
<input type="password" name="password" class="form" />
<input type="submit" value="Login" class="form" id="btn" />
</form>';
//hiciamos la pagina
$html = '<html>
<head>
<title>ejemplo</title>
<style>
.signin {height:39px; background:#282828}
.signin label, .signin .form {float:left;height:18px;}
.signin label {padding:5px 10px;color:#FFF}
.signin .form {margin-top:8px;margin-right:10px;background:#2B464D;border:solid 1px #172629;color:#FFF;text-align:right}
.signin #btn {width:56px;height:27px;background:#476F27;border:none;padding:0 0 6px 0;font-size:12px;color:#FFF;margin:0;text-align:center}
</style>
</head>
<body>';
// comprobamos si el usuario esta logueado para ello utilizamos la global $usActual que la definimos en config.php
global $usActual;
$html .='<div class="right"><div class="signin">';
if(!$usActual->isLogin()){
// si no esta logueado concatenamos el formulario
$html .= $formLogin;
}else{
$html .= '<label>bienvenido '.$usActual->getThisNombre().'</label>';
// vemos si pertenece al grupo administrador
if($usActual->getThisGrupo() == 'Admin'){
$html .= '<label><a href="#">Panel</a></label>';
}
$html .= '<label><a href="proceso.php?accion=logout">Logout</a></label>';
}
$html .='</div></div>';
//mostramos la pagina
echo $html;
?>
config.php
Código php:
Ver original<?php
//definimos las CONSTANTES para la conexion mysql
define('DB_HOST','localhost');
//incluimos las clases
include 'class/odbcon.php';
include 'class/class.usuarios.php';
//creamos los objetos globales, usActual y DbConn;
global $DbConn;
$DbConn = new DbConn(DB_HOST,DB_USER,DB_PASS);
$DbConn -> connect();
$DbConn -> selectDb(DB_NAME);
global $usActual;
$usActual = new usuario();
?>
proceso.php
Código php:
Ver original<?php
//incluimos el archivo de configuracion
include 'config.php';
//lamamos a la global usActual para hacer las comprobaciones
global $usActual;
$urlRedirect = 'ejemplo.php'; // url a donde redireccionamos
//si es esta definida la variable $_POST['login']
if($_POST['login']){
// comrpobamos que el usuario y la contraseña sean correctas con la funcion usuario->login, que devolvera true si esta todo correcto, guardando la session
if($usActual->login(array($_POST['login'],md5($_POST['password'])))){
echo '<b>Conexion exitosa. Redireccionando a '.$urlRedirect.'...</b>';
echo '
<script>
// redireccionamos ne 3 segundos para que se logre ver el mensaje publuicado arriba
setTimeout("document.location.href=\''.$urlRedirect.'\'",3000);
</script>';
}else{
echo 'usuario o contraseña incorrecta, vuelva a intentarlo';
echo '
<script>
// redireccionamos ne 3 segundos para que se logre ver el mensaje publuicado arriba
setTimeout("document.location.href=\''.$urlRedirect.'\'",3000);
</script>';
}
}
if($_GET['accion']=='logout'){
$usActual->logout();
echo '<b>Desconexion exitosa. Redireccionando a '.$urlRedirect.'...</b>';
echo '
<script>
// redireccionamos ne 3 segundos para que se logre ver el mensaje publuicado arriba
setTimeout("document.location.href=\''.$urlRedirect.'\'",3000);
</script>';
}
?>
clase usuarios
Código php:
Ver original<?php
class usuario{
var $id=null;
var $init = null;
var $getInfo = false;
var $isLogin = false;
/**
* Constructor de la clase, necesaria para la comprabacion interna
* setea la variable $init para comprobar que la clase esta instanciada
* para acciones publicas no se requiere la variable
* @return Void
* @access public
* @static
*/
function usuario(){
$this->init = true;
}
/**
* logea al Usuario, realiza una comprobacion devuelve true en caso de exito
* @param $loginInfo Array con los datos para el logueo
* @return Void
* @access public
* @static
*/
function login ($loginInfo){
if($this->init === true){
if($this->checkLogin($loginInfo)==true){
$this->getInfo = true;
$this->id = $this->getThisId($loginInfo);
$this->getInfo = false;
$this->isLogin = true;
$_SESSION['login']=$this->id;
return true;
}else{
return false;
}
}else{
return 'no se inicio variable';
}
}
/**
* Destruye la sesion
* @param $loginInfo Array con los datos para el logueo
* no se requiere instanciar la clase para desloguearse
* @return Void
* @access public
* @public
*/
function logout(){
$this->isLogin = false;
}
/*
*
* FUNCIONES para chequear informacion
*
*
* * */
/**
* Comprueba que exista el usuario y que coincida la contraseña
* en caso de exito devuelve true
* @param $loginInfo Array con los datos para el logueo
* @return Void
* @access public
* @static
*/
function checkLogin($loginInfo){
if($this->init === true){
global $DbConn;
$sql = 'SELECT COUNT(id) as num FROM usuarios WHERE login="'.$user.'" AND password="'.$pass.'"';
$dat = $DbConn->fetchArray($DbConn->query($sql));
if ($dat['num'] == 1){
return true;
}
return false;
}
}
/*
*
* FUNCIONES para recuperar informacion
*
*
* * */
/**
* Devuelve el id del usuario comprueba si la variable getInfo es true
* @param $loginInfo Array se necesita el usuario
* @return Void
* @access public
* @static
*/
function getThisId($loginInfo){
if($this->init === true){
if($this->getInfo === true){
global $DbConn;
$sql = 'SELECT id AS request FROM usuarios WHERE login = "'.$user.'"';
$dat = $DbConn->fetchArray($DbConn->query($sql));
return $dat['request'];
}
}
}
/**
* Devuelve el nombre del usuario
* solamente si el usuario esta logueado
* @param $loginInfo Array se necesita el usuario
* @return Void
* @access public
* @static
*/
function getThisNombre(){
if($this->isLogin()){
$this->id = $_SESSION['login'];
if($this->id != null){
global $DbConn;
$sql = 'SELECT login AS request FROM usuarios WHERE id='.$this->id;
$dat = $DbConn->fetchArray($DbConn->query($sql));
return $dat['request'];
}
}
}
/**
* Devuelve el nombre del grupo del usuario
* solamente si el usuario esta logueado
* @param $loginInfo Array se necesita el usuario
* @return Void
* @access public
* @static
*/
function getThisGrupo(){
$this->id = $_SESSION['login'];
if($this->id != null){
global $DbConn;
$sql = 'SELECT grupo AS request
FROM usuarios AS us
LEFT JOIN grupos AS gr
ON us.grupo_id = gr.id
WHERE us.id = '. $this->id;
$dat = $DbConn->fetchArray($DbConn->query($sql));
return $dat['request'];
}
}
function isLogin(){
if(isset($_SESSION['login'])){ return true;
}
return false;
}
} // <--------------------------- END CLASS ------------------------------>
?>