• Manuales
    • Internet
      • Google
      • Redes sociales
    • Base de datos
      • DB4O
      • MySQL
      • PHPmyadmin
      • Oracle
      • SQLite
    • Programación
      • Front-end
        • Angular
        • HTML
        • CSS
        • Javascript
          • Web Components
        • TypeScript
      • Back-end
        • PHP
        • NestJS
      • Desktop
        • C
        • C++
        • C#
        • Java
          • JavaFX
        • Swift
        • Visual Basic .NET
      • Móvil
        • Android
        • Ionic
      • Scripting
        • Lua
          • Love 2D
        • Python
          • Django
        • ShellScript
      • Otros
        • Pseudocódigo
        • XQuery
    • Ofimática
      • Hoja de cálculo
      • Procesador de texto
    • Sistemas operativos
      • Linux
      • Mac OS
      • Windows
    • Software
    • Web
      • Drupal
      • E-Commerce
      • Foro
      • Joomla
      • WordPress
  • Ejercicios
    • Base de datos
    • Desktop
      • C#
      • Java
      • JavaFX
      • Visual Basic .NET
    • Web
      • HTML
      • Javascript
      • PHP
    • Comandos
      • Comandos Linux
    • Otros
      • Excel
      • Pseudocodigo
      • Xquery
    • Scripting
      • Lua
      • Python
      • Shellscript
    • Test
      • Java
  • Cursos
    • Curso Excel
    • Curso Java
    • Curso Love2D
    • Curso Pseudocódigo
    • Curso Python
    • Curso Visual Basic .NET
    • Curso PL/SQL
    • Udemy
  • Trabajos
  • Descargas
    • Recursos programación
    • Inglés
    • Libros
  • Tareas DAM/DAW
  • Manuales
    • Internet
      • Google
      • Redes sociales
    • Base de datos
      • DB4O
      • MySQL
      • PHPmyadmin
      • Oracle
      • SQLite
    • Programación
      • Front-end
        • Angular
        • HTML
        • CSS
        • Javascript
          • Web Components
        • TypeScript
      • Back-end
        • PHP
        • NestJS
      • Desktop
        • C
        • C++
        • C#
        • Java
          • JavaFX
        • Swift
        • Visual Basic .NET
      • Móvil
        • Android
        • Ionic
      • Scripting
        • Lua
          • Love 2D
        • Python
          • Django
        • ShellScript
      • Otros
        • Pseudocódigo
        • XQuery
    • Ofimática
      • Hoja de cálculo
      • Procesador de texto
    • Sistemas operativos
      • Linux
      • Mac OS
      • Windows
    • Software
    • Web
      • Drupal
      • E-Commerce
      • Foro
      • Joomla
      • WordPress
  • Ejercicios
    • Base de datos
    • Desktop
      • C#
      • Java
      • JavaFX
      • Visual Basic .NET
    • Web
      • HTML
      • Javascript
      • PHP
    • Comandos
      • Comandos Linux
    • Otros
      • Excel
      • Pseudocodigo
      • Xquery
    • Scripting
      • Lua
      • Python
      • Shellscript
    • Test
      • Java
  • Cursos
    • Curso Excel
    • Curso Java
    • Curso Love2D
    • Curso Pseudocódigo
    • Curso Python
    • Curso Visual Basic .NET
    • Curso PL/SQL
    • Udemy
  • Trabajos
  • Descargas
    • Recursos programación
    • Inglés
    • Libros
  • Tareas DAM/DAW

Como hacer un Login con PHP

13/09/20211 comentario

Hola a todos, hoy os quiero explicar como podemos hacer un login en PHP.

Como ya vimos en otro manual como crear usuarios con password hasheada o encriptada. Lo puedes ver aquí:

Como crear usuarios en PHP con password hasheada

En este manual, vamos a ver como podemos validar esa password hash con la función password_verify, donde le pasamos el password que queremos comprobar y el hash a comprobar.

Vamos a crear un formulario de login:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login</title>
</head>
<body>
    
    <form action="login.php" method="post">
        <label for="username">Username</label>
        <input type="text" name="username" id="username">
        <label for="password">Password</label>
        <input type="password" name="password" id="password">
        <input type="submit" value="Login">
    </form>

</body>
</html>

Lo primero que haremos es obtener el hash del usuario concreto y comparar el password que hemos puesto en el formulario con el que tiene el usuario, esto lo haremos con password_verify.


<?php

    require_once 'conexion.php';
    session_start();

    $username = $_POST['username'];
    $password = $_POST['password'];

    $sql = "SELECT * ";
    $sql .= "FROM login ";
    $sql .= "WHERE username = '". $username ."'";

    $resultados = $conexion->query($sql);

    $fila = mysqli_fetch_assoc($resultados);

    $passwordHash = $fila['password'];

    if(password_verify($password, $passwordHash)){
        $_SESSION['logueado'] = true;
        header("Location: logged-area.php");
    }else{
        $_SESSION['logueado'] = false;
        header("Location: index.php");
    }

?>

Con la session, sabremos si esta o no logueado desde cualquier punto de la aplicación.

Donde queramos poner que no se pueda acceder sin habernos logueado, tendremos que comprobarlo al principio:

<?php
    session_start();
    if(!isset($_SESSION['logueado']) || !$_SESSION['logueado']){
        header("Location: index.php");
    }
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <p>Usuario logueado</p>
    
    <form action="logout.php" method="post">
        <input type="submit" value="Logout">
    </form>

</body>
</html>

En el caso de que queramos hacer un logout, podemos tener un script php con el siguiente contenido:

<?php
    session_start();
    unset($_SESSION['logueado']);
    header("Location: index.php");
?>

Os dejo un video donde lo explico:

https://youtu.be/O5pPMlESM1I

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Articulos relacionados

Video HTML 5

06/02/2023

Audio HTML 5

01/02/2023

1 comentario

  1. WilliamSpult 11/07/2022

    Njfhsjdwkdjwfh jiwkdwidwhidjwi jiwkdowfiehgejikdoswfiw https://gehddijiwfugwdjaidheufeduhwdwhduhdwudw.com/fjhdjwksdehfjhejdsdefhe

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Donaciones

Si te gusta mi trabajo, invítame a un café.

¿Necesitas un servidor como el mío? Aquí lo tienes

alojamiento wordpress

Encontrar trabajo de informática

¡Gana dinero con tu web!

Registrate en publisuites desde aquí.

 

 

© Copyright 2022 Disco Duro de Roer. Todos los derechos reservados
  • Acerca de mí
  • Tutorias
  • Contacto
  • Foro DDR