Código HTML:
Nombre de la sesion => PHPSESSID Usuario ID (referencia) => Notice: Undefined variable: _SESSION in... Usuario login (nombre) => Notice: Undefined variable: _SESSION in... Usuario Nivel de Acceso => Notice: Undefined variable: _SESSION in...
de todas maneras le mando mi coidog para que lo vean es largo pero facil de enternder para kien no tenga AUTENTIFICATOR
login.php
Código PHP:
<?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> Login</TITLE>
<style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>
<BODY text=#000000 vLink=#6699FF aLink=#6699FF link=#000000 bgColor=#ffffff topMargin=0 marginheight="0">
<span class="botones"></span><span class="imputbox"></span>
<form name="form1" method="post" action="pag1_restringido.php">
<table width="42%" align="center" border="0">
<tr>
<td>
<?
// 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='#6699FF'>Error: $error_login_ms[$error]";
}
?>
</td>
</tr>
</table>
<table width="48%" align=center border="0">
<tr>
<td width="42%">
<div align="center"><font face="Verdana" size="2"><b><span lang="en-us">Login</span></b></font>
</div>
</td>
<td width="58%">
<input type="text" name="user" size="15" class="imputbox">
</td>
</tr>
<tr>
<td width="42%"><b><font face="Verdana" size="2">Password</font></b></td>
<td width="58%">
<input type="password" name="pass" size="15" class="imputbox">
</td>
</tr>
<tr>
<td width="42%">
<div align="center"></div>
</td>
<td width="58%"> <font face="Arial" color=black size=2>
<input name=submit type=submit value=" Entrar " class="botones">
</font></td>
</tr>
</table>
</form>
<p> </p>
</BODY></HTML>
Código PHP:
<?
$error_login_ms[0]="No se pudo conectar con Base de datos";
$error_login_ms[1]="No se pudo realizar consulta a la Base de datos";
$error_login_ms[2]="Password ó Usuario no existe";
$error_login_ms[3]="Password no valida";
$error_login_ms[4]="Usuario no existe";
$error_login_ms[5]="No está autorizado para realizar esta acción o entrar en esta página";
$error_login_ms[6]="Acceso no autorizado! Registrese";
?>
Código PHP:
<?
// Motor autentificación usuarios.
// Cargar datos conexion y otras variables.
require ("conexion.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.
$conexion=mysql_connect($host,$dbuser,$dbpass) or die(header ("Location: $redir?error_login=0"));
mysql_select_db("$database");
// realizamos la consulta a la BD para chequear datos del Usuario.
$usuario_consulta = mysql_query("SELECT rut,login,pass,id_tipo FROM usuario WHERE login='".$_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 = ($_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($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['login']) {
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['pass']) {
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();
// 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['rut'];
// definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
$_SESSION['usuario_nivel']=$usuario_datos['id_tipo'];
//definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
$_SESSION['usuario_login']=$usuario_datos['login'];
//definimos usuario_password con el password del usuario de la sesión actual (formato md5 encriptado)
$_SESSION['usuario_password']=$usuario_datos['pass'];
// 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;
}
}
?>
Cita:
<?
$host="localhost"; /* Mi server mysql */
$database=""; /* Mi base de datos */
$dbpass=""; /*Mi password mysql */
$dbuser=""; /* Mi user mysql */
$conexion=mysql_connect($host,$dbuser,$dbpass);
mysql_select_db(""); ?>
$host="localhost"; /* Mi server mysql */
$database=""; /* Mi base de datos */
$dbpass=""; /*Mi password mysql */
$dbuser=""; /* Mi user mysql */
$conexion=mysql_connect($host,$dbuser,$dbpass);
mysql_select_db(""); ?>
pag1_restringido.php
Código PHP:
<?
require("conexion.php");
$nivel_acceso=10; // Nivel de acceso para esta página.
if ($nivel_acceso <= $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}
?>
<html>
<head>
<title>Página con acceso restringido!</title>
</head>
<body>
<p>Acceso Autorizado:</p>
Esto es una página con acceso restringido.<br><br>
Nombre de la sesion => <? echo session_name(); ?> <br>
Usuario ID (referencia) => <? echo $_SESSION['usuario_id'] ?><br>
Usuario login (nombre) => <? echo $_SESSION['usuario_login'] ?><br>
Usuario Nivel de Acceso => <? echo $_SESSION['usuario_nivel'] ?><br><br>
<br>
<a href="aut_gestion_usuarios.php">Gestionar usuarios</a>
<br><br>
<a href="aut_logout.php">Salir zona restringida</a>
</body>
</html>
Código:
ahi esta todo lo necesario para k me ayuden en contrar mi eroor CREATE TABLE `usuario` ( `RUT` varchar(12) NOT NULL default '', `ID_TIPO` int(11) NOT NULL default '0', `NOMBRE` varchar(20) default NULL, `APELLIDO` varchar(20) default NULL, `TELEFONO` varchar(12) default NULL, `EMAIL` varchar(50) default NULL, `TIPO_USUARIO` varchar(20) default NULL, `LOGIN` varchar(20) default NULL, `PASS` varchar(20) default NULL, PRIMARY KEY (`RUT`), KEY `AGRUPA_FK` (`ID_TIPO`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;