Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/04/2003, 13:02
Keysher
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Problema con sesión

Buenas, tengo un problemilla con la autentificación de usuarios a través de sesiones.

Lo primero decir que he hecho una búsqueda, pero no he encontrado una solución a mi problema.

El caso es que es la primera vez que trabajo con esto de las sesiones y estoy un poco perdido.

quiero hacer algo de autentificación sencillito, y cogiendo como base el "autentificator" de Cluster me he dispuesto a empezar desde el principio.

Tengo éste script:

Código PHP:
<?php
    
    
//comprobamos que se haya accedido a la página a través de un formulario.
    
if (isset($_POST['usuario']) && isset($_POST['pass'])) {


        
//consulta en la Base de datos.
        
mysql_connect ('***''***');  
        
mysql_select_db ('***);
        $query = mysql_query("SELECT nombre,pass FROM usuarios WHERE nombre='".$_POST['usuario']."'");


        //si no se ha devuelto ninguna fila, es que ese usuario no existe.        
        if (mysql_num_rows($query) == 0) {
            echo('
No existe ese usuario');
            exit;
        }
    
        //si el usuario existe metemos sus datos en variables.
        $datos_usuario = mysql_fetch_array($query);

        //Y comprobamos si el password es correcto.
        if ($datos_usuario['
pass'] == $_POST['pass']) {

            echo ('
usuario aceptado');
            session_name('
keysherweb');
            session_start();
            $_SESSION['
usuario']=$datos_usuario['usuario'];
    
            exit;
         } else {
            //en caso de que el pass sea incorrecto...
            echo ('
Contraseña incorrecta');
            exit;
        }
    
    } else {
        // si entra por éste else significa que no se ha llegado a esta página a través del formulario.


        session_name('
kw');        
        session_start();

        if (!isset($_SESSION['
usuario'])) {            
            session_destroy();
            echo ('
acceso incorrectoenviar al login.');
            exit;
        } else {
            echo('
Sesión activapuede pasar a la página que necesita login);
        }
    }

?>
(He omitido el nombre, user... de la base de datos)

Bueno, es algo muy sencillo, para probar, ni siquiera encripto el pass, y va más o menos bien.
El problema está cuando se ha autentificado, cuando quiere acceder a la página da siempre "acceso incorrecto", es decir como si no existiese la sesión.

Ya digo que no entiendo mucho de sesiones todavía, pero ¿dónde puede estar el fallo?

Bueno, a ver si me podeís echar un cablecillo para que siga haciendo cosillas, saludos!