Está basado en el autentificador de clúster, supongo que por su licencia no hay problema en que lo ponga, si algún moderador cosidera que no debí hacerlo por favor borrelo, que yo
index.php<br>
Código PHP:
<?
// No almacenar en el cache del navegador esta página.
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Expira en fecha pasada
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Siempre página modificada
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
?>
<html>
<head>
<title>titulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="f.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
@import url("css.css");
-->
</style>
</head>
<body bgcolor="#000000" leftmargin="0" topmargin="0" rightmargin="0" marginwidth=0 marginheight=0 width=778 marginleft="0" marginright="0" frameborder=0>
<table width="250" border="1" cellspacing="0" cellpadding="0" align="center" bordercolor="#0099FF">
<tr>
<td> <table width=100% border=0 align="center" cellpadding="0" cellspacing="0" bordercolor="#009999" bgcolor="#CCFFCC">
<form action="pag1_restringido.php" method="post">
<tr bgcolor="#0099FF">
<td colspan="2" height="45"> <div align="center"><font face="Arial" color="#FFFFFF" size=2><b>Identificación
Usuarios<br>
<font color="#FFFF00">www.tupagina.tal</font></b></font></div></td>
</tr>
<tr>
<td colspan="2"> <div align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr valign="middle">
<td colspan="2" height="30"> <div align="center">
<?
// Mostrar error de Autentificación.
include ("aut_mensaje_error.inc.php");
if (isset($_GET['error_login'])){
$error=$_GET['error_login'];
echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Error: $error_login_ms[$error]";
}
?>
</div></td>
</tr>
<tr>
<td width="39%"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Usuario
: </font></div></td>
<td width="61%"> <div align="left">
<input type="text" name="user" size="15" class="imputbox">
</div></td>
</tr>
<tr>
<td width="39%"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Password
: </font></div></td>
<td width="61%"> <div align="left">
<input type="password" name="pass" size="15" class="imputbox">
</div></td>
</tr>
</table>
</div></td>
</tr>
<tr valign="middle">
<td colspan="2" height="50"> <div align="center"><font face="Arial" color=black size=2>
<input name=submit type=submit value=" Entrar " class="botones">
</font></div></td>
</tr>
</form>
</table></td>
</tr>
</table>
</body>
</html>
aut.verifica.inc.php
Código PHP:
<?
// Motor autentificación usuarios.
// Cargar datos conexion y otras variables.
require ("aut_config.inc.php");
// chequear página que lo llama para devolver errores a dicha página.
$url = explode("?",$_SERVER['HTTP_REFERER']);
$pag_referida=$url[0];
$redir=$pag_referida;
// chequear si se llama directo al script.
if ($_SERVER['HTTP_REFERER'] == ""){
die ("Error cod.:1 - Acceso incorrecto!");
exit;
}
// Chequeamos si se está autentificandose un usuario por medio del formulario
if (isset($_POST['user']) && isset($_POST['pass'])) {
// Conexión base de datos.
// si no se puede conectar a la BD salimos del scrip con error 0 y
// redireccionamos a la pagina de error.
$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_pass") or die(header ("Location: $redir?error_login=0"));
mysql_select_db("$sql_db");
// realizamos la consulta a la BD para chequear datos del Usuario.
$usuario_consulta = mysql_query("SELECT * FROM $sql_tabla WHERE username='".$_POST['user']."'") or die(header ("Location: $redir?error_login=1"));
// miramos el total de resultado de la consulta (si es distinto de 0 es que existe el usuario)
if (mysql_num_rows($usuario_consulta) != 0) {
// eliminamos barras invertidas y dobles en sencillas
$login = stripslashes($_POST['user']);
// encriptamos el password en formato md5 irreversible.
$password = md5($_POST['pass']);
// almacenamos datos del Usuario en un array para empezar a chequear.
$usuario_datos = mysql_fetch_array($usuario_consulta);
// liberamos la memoria usada por la consulta, ya que tenemos estos datos en el Array.
mysql_free_result($usuario_consulta);
// cerramos la Base de dtos.
mysql_close($db_conexion);
// chequeamos el nombre del usuario otra vez contrastandolo con la BD
// esta vez sin barras invertidas, etc ...
// si no es correcto, salimos del script con error 4 y redireccionamos a la
// página de error.
if ($login != $usuario_datos['username']) {
Header ("Location: $redir?error_login=4");
exit;}
// si el password no es correcto ..
// salimos del script con error 3 y redireccinamos hacia la página de error
if ($password != $usuario_datos['user_password']) {
Header ("Location: $redir?error_login=3");
exit;}
// Paranoia: destruimos las variables login y password usadas
unset($login);
unset ($password);
// En este punto, el usuario ya esta validado.
// Grabamos los datos del usuario en una sesion.
// le damos un mobre a la sesion.
session_name($usuarios_sesion);
// incia sessiones
session_start();
session_register('count');
// Paranoia: decimos al navegador que no "cachee" esta página.
session_cache_limiter('nocache,private');
// Asignamos variables de sesión con datos del Usuario para el uso en el
// resto de páginas autentificadas.
// definimos usuarios_id como IDentificador del usuario en nuestra BD de usuarios
$_SESSION['usuario_id']=$usuario_datos['user_id'];
// definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
$_SESSION['usuario_nivel']=$usuario_datos['user_level'];
//definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
$_SESSION['usuario_login']=$usuario_datos['username'];
//definimos usuario_password con el password del usuario de la sesión actual (formato md5 encriptado)
$_SESSION['usuario_password']=$usuario_datos['user_password'];
// Hacemos una llamada a si mismo (scritp) para que queden disponibles
// las variables de session en el array asociado $HTTP_...
$pag=$_SERVER['PHP_SELF'];
Header ("Location: $pag?");
exit;
} else {
// si no esta el nombre de usuario en la BD o el password ..
// se devuelve a pagina q lo llamo con error
Header ("Location: $redir?error_login=2");
exit;}
} else {
// -------- Chequear sesión existe -------
// usamos la sesion de nombre definido.
session_name($usuarios_sesion);
// Iniciamos el uso de sesiones
session_start();
// Chequeamos si estan creadas las variables de sesión de identificación del usuario,
// El caso mas comun es el de una vez "matado" la sesion se intenta volver hacia atras
// con el navegador.
if (!isset($_SESSION['usuario_login']) && !isset($_SESSION['usuario_password'])){
// Borramos la sesion creada por el inicio de session anterior
session_destroy();
die ("Error cod.: 2 - Acceso incorrecto!");
exit;
}
}
?>