Para este ejemplo debemos considerar algunas factores:
<?php session_start(); //inciamos sesión //verificamos si esta saliendo de la sesión, ya veremos mas adelante como asignamos el valor. if (isset($_GET['logout']) && $_GET['logout']==1) session_destroy(); $msg = 'Ingresa tus datos'; //mensaje según las acciones. $muestraForm = true; // variable para decidir si mostramos el formulario //comprobamos si se ha pasado la contraseña y el usuario if (isset($_POST['password']) && isset($_POST['usuario'])) { $usuarioPost = strip_tags(html_entity_decode($_POST['usuario'], ENT_NOQUOTES, "UTF-8")); $passwordPost = strip_tags(html_entity_decode($_POST['password'], ENT_NOQUOTES, "UTF-8")); // ejemplo 'miclavesecreta' /******************** * en esta sección podemos hacer una consulta a nuestra base de datos con mysqli_query utilizando el usuario como condición y de la fila que obtenemos vamos a hacer una comparación de valores del campo que contiene la contraseña. Una forma de obtener la clave sería $password = $row['password'] ; * segun se llame el campo que la almacena, ya no necesitamos cifrarla porque cuando se guardó debimos hacerlo. Una forma de hacerlo es con password_hash, como lo hicimos en una publicación anterior. ejemplo: $password= strip_tags(html_entity_decode($_POST['password'], ENT_NOQUOTES, "UTF-8")); $valorParaGuardar = password_hash($password, PASSWORD_DEFAULT); entonces el valor que nos devuelve y que guardamos sería algo como : $2y$10$QrSyPejWHpo0sxfd1ZnPTObKhIkv4VNQBcmz2SsbBGN/29nN9fhtu regresando al código, ya tenemos el valor guardado en la base de datos **************************/ $passwordCampo = $row['password'] ; // osea $2y$10$QrSyPejWHpo0sxfd1ZnPTObKhIkv4VNQBcmz2SsbBGN/29nN9fhtu // hacemos la comprobación del valor $_POST y del CAMPO if (password_verify($passwordPost, $passwordCampo)) { $msg = 'Bienvenido'; $PassOk = true; // asignamos un valor verdadero para que nos deje pasar a secciones privadas. $muestraForm = false; // no necesitamos mostrar el formulario }else{ $msg 'password Invalido.'; // un mensaje mostrando que no coincidieron las claves //asignamos un valor negativo para el acceso a zonas restringidas $PassOk = false; } } // terminamos if si recibimos datos para hacer login if ($PassOk) { //accedemos al panel privado o mostramos contenido protegido. echo '<p>'.$msg.' Has accedido correctamente</p>'; // mostramos el enlace para cerrar sesión echo '<p><a href="?logout=1">Cerrar Sesión</a></p>'; } if($muestraForm){ //al no pasar contraseña enviamos al formulario de inicio echo '<h2>'.$msg.'</h2> <form name="form" method="post" action=""> <label for="usuario">Usuario:</label><br> <input type="text" id="usuario" name="usuario" value=""><br> <label for="password">Contraseña:</label><br> <input type="password" id="password" name="password" value=""> <input type="submit" value="Login"> </form>'; } ?>
Este ejemplo es una continuación de la publicación
Guardar registro con password_hash