Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: bgnumis en 26 Agosto 2019, 12:51 pm



Título: [Resuelto] Urgente por favor: enviar campos a php pero no desde un form
Publicado por: bgnumis en 26 Agosto 2019, 12:51 pm
Hola,

He "conseguido" redirigir después del login a una web u otra.
La cuestión es que que el código redirige a mipagina2.php o mipagina.php

¿Cómo hago para que me envie a estas dos páginas el "registro de usuario que venia del login? Es decir los datos:    

Código
  1.  
  2. $email = $_POST['email'];
  3. $password = $_POST['password'];
  4.  

¿Cómo podría incluir en mipagina2 y mipagina.php un password verify (habendo enviado el email y el password ) para que si no está logeado me redirijan a index.html?

La web que redirige hace lo siguiente:

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

Ayuda por favor. Sé que algo estoy expresando mal pero si me orientáis quizá podré resolverlo.

He visto lo siguiente:

Código
  1. <?php  
  2. if(empty($_SESSION["autenticado"])){  
  3. header("Location: index.php");  
  4.    exit();  
  5. }  
  6. ?>
  7.  
  8.  

En mi web después del login me envia a una web donde se supone que "estoy autenticado" y hago un condicional donde si el usuario es un mail me envía a mipagina2.php o a mipagina.php en cualquier otro caso.

¿cómo autentico? Y guardo los datos para que los arrastre de un archivo php a otro sin perder las "conexión del usuario"?


MOD: No hacer triple post. Usa el boton modificar. Titulo a minusculas.


Título: Re: Urgente por favor: enviar campos a php pero no desde un form
Publicado por: #!drvy en 27 Agosto 2019, 12:18 pm
La sesión ($_SESSION), se pasa entre sesiones. No te hace falta comprobar la contraseña constantemente.

Según el código en tu otro post, en cada página donde quieras forzar que el usuario este autentificado, debes añadir esto al principio (antes que el HTML o antes de imprimir nada):

Código
  1. if (empty($_SESSION['loggedin'])) {
  2.    header('Location: index.php');
  3.    exit;
  4. }

Saludos


Título: Re: Urgente por favor: enviar campos a php pero no desde un form
Publicado por: bgnumis en 28 Agosto 2019, 22:47 pm
Mil Gracias.