Foros del Web » Programando para Internet » PHP »

Validar usuarios desde FORM con PHP y MySQL utilizando también variables SESSION

Estas en el tema de Validar usuarios desde FORM con PHP y MySQL utilizando también variables SESSION en el foro de PHP en Foros del Web. Estimados, Hace casi una semana que estoy luchando con este código... He leído manuales, revisado foros, he intentado correr el código en diferentes plataformas (en ...
  #1 (permalink)  
Antiguo 08/12/2014, 16:54
Avatar de supersiana  
Fecha de Ingreso: diciembre-2014
Mensajes: 14
Antigüedad: 9 años, 11 meses
Puntos: 0
Sonrisa Validar usuarios desde FORM con PHP y MySQL utilizando también variables SESSION

Estimados,

Hace casi una semana que estoy luchando con este código...
He leído manuales, revisado foros, he intentado correr el código en diferentes plataformas (en Windows con XAMPP y WampServer, en Linux con XAMPP y LAMPP, subí los archivos a un servidor web y lo ejecuté desde allí)
Y sinceramente, estoy llegando a cansarme seriamente de insistir para encontrar dónde está el problema...

Este es el código que finalmente he logrado armar (y en algún lado posee algún conflicto).

Sencillamente, logro poner usuario y clave, pero me queda la página en blanco.
Ni siquiera me arroja error.

Sé que debo "buscar" antes de publicar, pero sinceramente ya no tengo más fuerzas y me encuentro con que debo terminar este esquema y no encuentro (en mis propias neuronas) el alivio que necesito!

Creo que en tantos intentos que he hecho, he terminado por descomponer el código.

No termino de comprender del todo las variables SESSION y su funcionamiento, por más que he leído y me ha parecido sencillo, al aplicarlo me resulta nuevamente incomprensible e inaccesible.

Solicito una mano en lo que cualquiera de ustedes pueda ayudarme al respecto.

Muchísimas gracias!

Estos son los archivos

Archivo 1 - index.php :
Código PHP:
<?php
    session_start
();

    if (
$_SERVER['REQUEST_METHOD'] == 'POST') {
        
$nombre $_POST['nombre'];
        
$contrasena $_POST['contrasena'];
        
//Creamos una variable para verificar si el usuario con ese nombre y contraseña existe.
        
$usuario_encontrado false;
 
    if ( ! (
$conexion mysql_connect("localhost""USUARIO""CLAVE"))) {
        echo 
"No se ha podido conectar con PHPMyAdmin!";
        exit();    
    } else {
        
$nombre $_POST['nombre'];
         
$contrasena $_POST['contrasena'];
        
mysql_select_db("BASE-DE-DATOS"$conexion);
        
$query "SELECT * FROM usuarios WHERE usuario='" $_POST['nombre'] . "' and pass='"$_POST['contrasena'] . "'";
        
$q mysql_query($query);    
        
$num mysql_num_rows($q);
        if (
$num 0) {
        echo 
'<a href="sistema.php">Ingresa al sistema</a>';
        
$usuario_encontrado true;
        }
        
//Verifica si dentro del bucle se ha encontrado el usuario.
        
if($usuario_encontrado){
            
$_SESSION['logueado'] = true;
            
$_SESSION['nombre'] = $nombre;
            
header('Location: sistema.php');
            exit;
        } else {
            
$error_login true;
        }
    }
    
?>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title> Logueo </title>
    <link href="style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
            
        <?php if(isset($error_login)): ?>
                 <p style="color: #f00; font-family: Calibri, Arial, Verdana, 'sans-serif'; font-weight: bold; margin: 20px;"> Usuario o contraseña incorrectos. Intente nuevamente... </p> 
        <?php endif; ?>
   <div class="box">         
        <form method="post" action="index.php">
            <label for="nombre" class="INPUTS"> Nombre </label>
            <input type="text" name="nombre" id="nombre" required />
            <br />
            <label for="contrasena"  class="INPUTS"> Contraseña </label>
            <input type="password" name="contrasena" id="contrasena" required />
            <br />
            <input type="submit" value="Enviar" />
        </form>
        </div>
    </body>
</html>

Archivo 2 - sistema.php :

Código PHP:
<?php
    session_start
();
    if(isset(
$_SESSION['logueado']) and $_SESSION['logueado']){
        
$nombre $_SESSION['nombre'];
    }else{
        
//Si el usuario no está logueado redireccionamos al login.
        
echo "Debe estar logueado para ingresar a este sector...";
        
header('Location: index.php');
        exit;
    }
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title> Página de bienvenida </title>
    </head>
    <body>
        <h1> Bienvenido/a <?php echo $nombre?> </h1>
        <p> <a href="cerrar_sesion.php"> Cerrar sesión </a> </p>
    </body>
</html>
Archivo 3 - cerrar_sexion.php

Código PHP:
<?php
    session_start
();
    if (isset(
$_SESSION['logueado']) and $_SESSION['logueado']) {
        
$_SESSION['logueado'] = false;
        unset(
$_SESSION['nombre']);
    }
    
header('Location: index.php');
    exit;
mysql_free_result($resultado); //Libera la busqueda de la base de datos...    
?>
  #2 (permalink)  
Antiguo 08/12/2014, 17:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Validar usuarios desde FORM con PHP y MySQL utilizando también variables S

Si obtienes "una pagina en blanco" entonces puede que el error sea fatal, y si no habilitas el reporte completo de errores, ni revisas el log de errores entonces jamás sabrás lo que sucede.

Y lo mismo nos pasaría a nosotros, ¿o cómo pretendes que adivinemos el problema?

¿Tenemos que ejecutar el código mentalmente?

Es más fácil entender con un mensaje de error que con una pantalla en blanco.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: form, html, mysql, select, session, usuarios, variable, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:14.