Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/10/2006, 15:13
gazuzax
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 17 años, 7 meses
Puntos: 0
Desacuerdo No puedo implementar sistema AUTENTIFICATOR.. (revisaras muchos archivos)

estaba tratando de implementar el sistema AUTENTIFICATOR par kien lo cocnzca, en mi sistema, llegue a pag1_restringido.php pero me salia como error:
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...
primero me validadba los errores de aut_mensaje_error.inc.php, pero luego me di cuenta que al momento de hacerle click a entrar a login.php con los aots que fueran me enviaba directamente a pag1_restringido.php con los mimos errores que mencione antes, osea dejo de validarme el ingreso.. sera pk cree una sesion y no se ha destriudo?nose pk = reinicie mi pc
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>&nbsp;</p>
</BODY></HTML>
aut_mensaje_error.inc.php
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";
?>
aut_verifica.inc.php
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;
}
}
?>
asi es mi conexion :
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(""); ?>

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>
mi tabla usuario
Código:
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;
ahi esta todo lo necesario para k me ayuden en contrar mi eroor