PHP - Logearse y crear cookie con los datos

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

Logearse y crear cookie con los datos

Publicado por Pepe (8 intervenciones) el 18/02/2018 11:23:12
Hola a todos:
Estoy siguiendo el curso de PHP-MySQL de PildorasInformaticas ( por cierto, excelente!) y estoy en el video 66 pero atascado.
Resulta que lo que quiero es: tengo un formulario de entrada donde el programa te pida tu usuario y tu contarseña y que además tiene una casilla de verificación.
Si te logeas adecuadamente te permite ir a ver una "página" cuyo contenido está reservado a los usuarios registrados.
Si además señalas la casilla de verificación , crea una cookie con los datos introducidos de tal modo que la próxima vez que intentes ir a la página ya no te presente el formulario puesto que "recuerda" tus datos.

En la tabla de usuarios_pass los únicos datos que tengo son "Pepe" y "1234".

El problema es que no me "engancha el archivo del formulario (formulario.html) con el otro, que es el que hace el trabajo (login,php). Y por más que miro no veo el fallo. Alguien me puede echar una mano? Es que si no, no puedo seguir... Mil gracias, de todos modos

Pepe

Dejo el contenido de los dos ficheros:

FORMULARIO.HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>


<style>
h1{text-align:center;}
table{
width:25%;
background-color:#CF0;
border: 4px double #000;
margin: auto;
}
.izq{text-align:right;}
.der{text-align:left;}
td{
text-align:center;
padding:10px;
}

</style>
</head>

<body>
<!----- Formulario de logeo ----->


<h1> INTRODUCIR TUS DATOS </h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<table>

<tr><td class="izq">Login: </td> <td class="der"><input type="text" name="login"> </td></tr>
<tr><td class="izq">Password: </td> <td class="der"><input type="text" name="password"> </td></tr>
<tr><td class="izq"> Recordar: </td><td class="der"><input type="checkbox" name0"recordar"></td>

<tr><td colspan="2"><input type="submit" name="enviar" value="LOGIN"> </td></tr></table>
</form>
</body>
</html>

=============================================================

LOGIN.PHP

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>

<style>
.cuadros{
font-size:70px;
}
</style>
</head>

<body>


<?php
$autenticado=false;

if(isset($_POST['enviar'])){

try{

$base=new PDO("mysql:host=localhost; dbname=pruebas", "root", "");

$base->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql="SELECT * FROM usuarios_pass WHERE USUARIOS=:login AND PASSWORD =:password";

$resultado=$base->prepare($sql);

$login = htmlentities( addslashes($_POST['login']));
$password = htmlentities( addslashes($_POST['password']));

// Ahora tenemos que decirle que los marcadores deben coincidir con lo metido en el formulario

$resultado->bindValue(":login", $login);
$resultado->bindValue(":password", $password);

$resultado->execute();

// No es necesario mostrar los datos; solo si estan o no

$numero_registro=$resultado->rowCount();

if( $numero_registro!=0){
$autenticado=true;
if(isset($_POST['recordar'])){
setcookie('nombre_usuario',$_POST['login'], time()+86400);
}


//header("location:usuarios_registrados2.php");

} else {
echo" Usuario o contraseña incorrectos";
// header("location:login_2.php");

}

}catch(Exception $e){

die("Error: ".$e->getMessage());

}
}

?>


<?php

if($autenticado==false){

if(!isset($_COOKIE['nombre_usuario'])){

include('formulario.html');
}
}

?>
<br><br>

<!----- Contenido al cual se accede si estás logeado convenientemente ----->

<table width="500" border="2">
<tr>
<td class="cuadros">Esto es lo que leen</td>

<td class="cuadros">aquellos usuarios que</td>
</tr>
<tr>
<td class="cuadros">se han logeado en el </td>

<td class="cuadros">formulario adecuadamente</td>
</tr>

</table>

<p> Lo tenía puesto con fotografías pero por no mandarlas no he querido cambiar el formato </p>




</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Logearse y crear cookie con los datos

Publicado por Miguel (218 intervenciones) el 19/02/2018 02:05:06
Para login es mejor que utilices las propias $_SESSION's de PHP.

Ejemplo:

dashboard.php (página privada)
1
2
3
4
5
6
7
8
9
10
// verificar si está logueado
if (!isset($_SESSIONS) ||
   !$_SESSION["logueado"])
{
    // redirigir al login
    header("Location: login.php");
    exit();
}
 
// mostrar página privada

login.php (acceso)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// verificar si está logueado
if (isset($_SESSIONS) &&
    $_SESSIONS["logueado"])
{
    // redirigir al dashboard
    header("Location: dashboard.php");
    exit();
}
 
// verificar si se está logueando
if (isset($_POST["login"])
{
    // credenciales
    $tipoUsuario = $_POST["tipo_usuario"];
    $usuarioOEmail = $_POST["usuario"];
    $clave = $_POST["clave"];
 
    // validar credenciales
    if (accesoValido($tipoUsuario, $usuarioOEmail, $clave))
    {
         // guardar sesión
         $_SESSION["logueado"] = true;
         $_SESSION["user_type"] = $tipoUsuario;
         $_SESSION["user_id"] = $idUsuario; // obtenido luego de la validación
         $_SESSION["user_name"] = $nombreUsuario; // obtenido luego de la validación
 
         // redirigir al dashboard
         header("Location: dashboard.php");
         exit();
    }
}
 
// formulario de login
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

Logearse y crear cookie con los datos

Publicado por Pepe (8 intervenciones) el 19/02/2018 09:41:15
Muchas gracias, Miguel. Lo voy a probar. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Logearse y crear cookie con los datos

Publicado por Miguel (218 intervenciones) el 19/02/2018 11:25:22
PD: Se me pasaron algunas s en la variable de sesión, debería ser solamente $_SESSION.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

Logearse y crear cookie con los datos

Publicado por Pepe (8 intervenciones) el 19/02/2018 11:29:18
Ya me había dado cuenta. Gracias otra vez, de todos modos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar