elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] Check Login y redirigir en función de un mail
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Check Login y redirigir en función de un mail  (Leído 1,962 veces)
bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
[Resuelto] Check Login y redirigir en función de un mail
« en: 25 Agosto 2019, 22:06 pm »

Hola, tengo creado (copiado de los tutoriales que orientan y ayudan para crear un login), cuando le das a login (donde pones tu nombre de usuario (email) y password) te redirige a checklogin.php

La cuestión es que me gustaría a partir de este checklogin.php añadir con SESSION una condicional que hago lo siguiente:

1.  si el Email que es el usuario de session y con el que me "logeo" es prueba@gmail.com entonces me redirija a prueba.php

 (subpregunta ¿Cómo hago para que en prueba debe hacer la comprobación de que el usuario está registrado y sino lo expulse?)

, y cualquier otra cosa me deje en el checklogin (en este caso parece que no te dejar acceder si no estás logeado, aunque ¿por qué no utiliza SESSION, cómo hacer que también utilice SESSION? lo cogí de un ejemplo, disculpad porque se me escoñó el pc y no recuerdo el autor, sino lo pondría por supuesto).

checklogin:

Código
  1.  
  2.  
  3. <?php
  4. ?>
  5.  
  6. <!doctype html>
  7. <html lang="en">
  8. <head>
  9. <title>Check Login and create session</title>
  10. <!-- Required meta tags -->
  11. <meta charset="utf-8">
  12. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  13.  
  14. <!-- Bootstrap CSS -->
  15. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
  16. </head>
  17. <body>
  18. <div class="container">
  19.  
  20. <?php
  21. // Connection info. file
  22. include 'conn.php';
  23.  
  24. // Connection variables
  25. $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
  26.  
  27. // Check connection
  28. if (!$conn) {
  29. die("Connection failed: " . mysqli_connect_error());
  30. }
  31.  
  32. // data sent from form login.html
  33. $email = $_POST['email'];
  34. $password = $_POST['password'];
  35.  
  36. // Query sent to database
  37. $result = mysqli_query($conn, "SELECT Email, Password, Name FROM users WHERE Email = '$email'");
  38.  
  39. // Variable $row hold the result of the query
  40. $row = mysqli_fetch_assoc($result);
  41.  
  42. // Variable $hash hold the password hash on database
  43. $hash = $row['Password'];
  44.  
  45. /*
  46. password_Verify() function verify if the password entered by the user
  47. match the password hash on the database. If everything is OK the session
  48. is created for one minute. Change 1 on $_SESSION[start] to 5 for a 5 minutes session.
  49. */
  50. if (password_verify($_POST['password'], $hash)) {
  51.  
  52. $_SESSION['loggedin'] = true;
  53. $_SESSION['name'] = $row['Name'];
  54. $_SESSION['start'] = time();
  55. $_SESSION['expire'] = $_SESSION['start'] + (1 * 60) ;
  56.  
  57. echo "<div class='alert alert-success mt-4' role='alert'><strong>Welcome!</strong> $row[Name]
  58. <p><a href='edit-profile.php'>Edit Profile</a></p>
  59. <p><a href='logout.php'>Logout</a></p></div>";
  60.  
  61. } else {
  62. echo "<div class='alert alert-danger mt-4' role='alert'>Email or Password are incorrects!
  63. <p><a href='login.html'><strong>Please try again!</strong></a></p></div>";
  64. }
  65. ?>
  66. </div>
  67. <!-- Optional javascript -->
  68. <!-- jQuery first, then Popper.js, then Bootstrap JS -->
  69. <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  70. <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
  71. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>
  72.  
  73. </body>
  74. </html>
  75.  
  76.  
  77.  


« Última modificación: 24 Septiembre 2019, 12:05 pm por #!drvy » En línea

bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: Check Login y redirigir en función de un mail
« Respuesta #1 en: 26 Agosto 2019, 12:16 pm »

Hola lo he conseguido¡


He puesto esto:

Código
  1.  
  2. if ( $email === 'prueba@gmail.com' ){
  3.  
  4. if (password_verify($_POST['password'], $hash)) {
  5.  
  6.  
  7.  
  8. header('Location:mipagina.php');
  9.  
  10. } else {
  11. echo "<div class='alert alert-danger mt-4' role='alert'>Email or Password are incorrects!
  12. <p><a href='login.html'><strong>Please try again!</strong></a></p></div>";
  13. }
  14.  
  15.  





En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Check Login y redirigir en función de un mail
« Respuesta #2 en: 27 Agosto 2019, 12:13 pm »

Código
  1. <?php
  2. $login_error = false;
  3.  
  4. // Si el usuario no tiene sesión iniciada pero si ha enviado email y contraseña...
  5. if (empty($_SESSION['loggedin']) && isset($_GET['email'], $_GET['password'])) {
  6.    $email = $_GET['email'];
  7.    $password = $_GET['password'];
  8.    $login_error = true;
  9.  
  10.    // Conectate a la BD solo cuando hace falta.
  11.    include 'conn.php';
  12.    $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
  13.  
  14.    if (!$conn) {
  15.        die('Connection failed: ' . mysqli_connect_error());
  16.    }
  17.  
  18.    // Usa sentencias preparadas para evitar SQLi, asegurante de que solo sacas cuantos datos necesitas
  19.    // https://www.php.net/manual/es/mysqli.prepare.php
  20.    // https://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL
  21.    // https://www.owasp.org/index.php/SQL_Injection
  22.    $stmt = mysqli_prepare($conn, 'SELECT Email, Password, Name FROM users WHERE Email = ? LIMIT 1');
  23.    mysqli_stmt_bind_param($stmt, 's', $email);
  24.    mysqli_stmt_execute($stmt);
  25.    $res = mysqli_stmt_get_result($stmt);
  26.    $row = mysqli_fetch_assoc($res);
  27.  
  28.    if (!empty($row['Password']) && password_verify($password, $row['Password'])) {
  29.        $_SESSION['loggedin'] = true;
  30.        $_SESSION['name'] = $row['Name'];
  31.        $_SESSION['start'] = time();
  32.        $_SESSION['expire'] = $_SESSION['start'] + (1 * 60);
  33.        $login_error = false;
  34.  
  35.        // Siempre comprueba los strings con 3 =
  36.        // https://www.php.net/manual/en/language.operators.comparison.php
  37.        if ($email === 'prueba@gmail.com') {
  38.            header('Location: mipagina.php');
  39.            exit;
  40.        }
  41.    }
  42. }
  43. ?>
  44.  
  45. <!doctype html>
  46. <html lang="en">
  47.  
  48. <head>
  49.    <title>Check Login and create session</title>
  50.    <!-- Required meta tags -->
  51.    <meta charset="utf-8">
  52.    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  53.  
  54.    <!-- Bootstrap CSS -->
  55.    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
  56. </head>
  57.  
  58. <body>
  59.    <div class="container">
  60.        <?php if (!empty($_SESSION['loggedin']) && !$login_error) : ?>
  61.  
  62.            <div class='alert alert-success mt-4' role='alert'>
  63.                <strong>Welcome!</strong>
  64.                <?php
  65.                    // Asegurate de imprimir escapar HTML cuando imprimes input del usuario
  66.                    echo htmlentities($_SESSION['name']);
  67.                ?>
  68.                <p><a href='edit-profile.php'>Edit Profile</a></p>
  69.                <p><a href='logout.php'>Logout</a></p>
  70.            </div>
  71.  
  72.        <?php else : ?>
  73.  
  74.            <div class='alert alert-danger mt-4' role='alert'>
  75.                Email or Password are incorrect!
  76.                <p><a href='login.html'><strong>Please try again!</strong></a></p>
  77.            </div>
  78.  
  79.        <?php endif; ?>
  80.    </div>
  81.    <!-- Optional javascript -->
  82.    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
  83.    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  84.    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
  85.    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>
  86.  
  87. </body>
  88. </html>


Los consejos los he dejado en código.

Saludos
« Última modificación: 27 Agosto 2019, 12:19 pm por #!drvy » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
setup factory 9.1 (check box. radio check) ¿?
Programación Visual Basic
stifmstr 2 3,970 Último mensaje 5 Diciembre 2013, 21:25 pm
por stifmstr
[Resuelto] problema con login en laravel 5.1 « 1 2 »
PHP
bengy 10 5,016 Último mensaje 14 Octubre 2015, 19:31 pm
por EFEX
Yahoo vuelve a habilitar función para redirigir emails a otras cuentas
Noticias
wolfbcn 0 971 Último mensaje 14 Octubre 2016, 21:25 pm
por wolfbcn
[Resuelto]Login solo en PHP
PHP
danny920825 5 3,175 Último mensaje 4 Enero 2017, 19:17 pm
por danny920825
Saber desde donde hacer el login de un mail
Bugs y Exploits
Dr Zoidberg 2 2,110 Último mensaje 8 Octubre 2019, 13:14 pm
por Dr Zoidberg
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines