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:
$email = $_POST['email'];
$password = $_POST['password'];
¿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:
<?php
session_start();
$_SESSION['email'] = $email;
?>
<!doctype html>
<html lang="en">
<head>
<title>Check Login and create session</title>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
</head>
<body>
<div class="container">
<?php
// Connection info. file
include 'conn.php';
// Connection variables
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// data sent from form login.html
$email = $_POST['email'];
$password = $_POST['password'];
// Query sent to database
$result = mysqli_query($conn, "SELECT Email, Password, Name FROM users WHERE Email = '$email'");
// Variable $row hold the result of the query
$row = mysqli_fetch_assoc($result);
// Variable $hash hold the password hash on database
$hash = $row['Password'];
if ( $email === 'bgnumis@gmail.com' ){
if (password_verify($_POST['password'], $hash)) {
header('Location:mipagina2.php');
} else {
echo "<div class='alert alert-danger mt-4' role='alert'>Email or Password are incorrects!
<p><a href='login.html'><strong>Please try again!</strong></a></p></div>";
}}
else {
if (password_verify($_POST['password'], $hash)) {
header('Location:mipagina.php');
} else {
echo "<div class='alert alert-danger mt-4' role='alert'>Email or Password are incorrects!
<p><a href='login.html'><strong>Please try again!</strong></a></p></div>";
}
}
?>
</div>
<!-- Optional javascript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>
</body>
</html>
Ayuda por favor. Sé que algo estoy expresando mal pero si me orientáis quizá podré resolverlo.
He visto lo siguiente:
<?php
session_start();
if(empty($_SESSION["autenticado"])){
header("Location: index.php");
exit();
}
?>
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.
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):
session_start();
if (empty($_SESSION['loggedin'])) {
header('Location: index.php');
exit;
}
Saludos
Mil Gracias.