Cita:
Iniciado por petit89
Lo que tuadmin esta diciendote, en otras palabras es que no tienes definida tu $_SESSION
Código PHP:
Ver originalelse {
$msg = "You have been logged in";
Aqui deberia ir algo como:
Código PHP:
Ver originalelse {
$msg = "You have been logged in";
$_SESSION['email'] = $email; //variable que viene del POST
header('Location: home.php'); //ahora si redireccionas exit(); // yo lo agregaria para que no siga leyendo
Por supuesto que el index.php tiene que llevar su session_start();
TODO documento, cuando trabajes con sesiones deber llevarlo.
El mensaje esta demas; si a esa velocidad ni se leerá.. pero mientras este en desarrollo, gusto tuyo... ahora que llevas $_SESSION['email'] definida, el codigo:
Código PHP:
Ver original $con = new mysqli('localhost', 'root', '', 'mydbname');
if(!isset($_SESSION['email'])) { header('location:index.php'); }
echo "bienvenido";
?>
ahora
SI tendra variable que leer... deberia mostrarte
bienvenido... tienes una comprobación de $_SESSION['email'] para logeo... ¿como pensabas comprobarla si no la mencionabas en nada mas?
hola petit89 gracias por responder, si tambien lo probe de ese modo, pero mi error era este:
$_SESSION['email'] = $data['email']; y debería haber sido así:
$_SESSION['email'] = $email; y si me faltaba en la primera linea
session_start();
yo lo probe de este modo y estaba mal asi:
Código PHP:
Ver original$sql = $con->query("SELECT id, password, isEmailConfirmed FROM users WHERE email='$email'");
if ($sql->num_rows > 0) {
$data = $sql->fetch_array();
if (password_verify($password, $data['password'])) {
if ($data['isEmailConfirmed'] == 0)
$msg = "Please verify your email!";
else {
$msg = "You have been logged in";
$_SESSION['email'] = $data['email'];
}
} else
$msg = "Please check your inputs!";
} else {
$msg = "Please check your inputs!";
}
y realmente daríahaber sido así.
Código PHP:
Ver original<?php
$msg = "";
if (isset($_POST['submit'])) { $con = new mysqli('localhost', 'root', '', 'mydbname');
$email = $con->real_escape_string($_POST['email']);
$password = $con->real_escape_string($_POST['password']);
if ($email == "" || $password == "")
$msg = "Please check your inputs!";
else {
$sql = $con->query("SELECT id, password, isEmailConfirmed FROM users WHERE email='$email'");
if ($sql->num_rows > 0) {
$data = $sql->fetch_array();
if (password_verify($password, $data['password'])) {
if ($data['isEmailConfirmed'] == 0)
$msg = "Please verify your email!";
else {
$msg = "You have been logged in";
$_SESSION['email'] = $email;
}
} else
$msg = "Please check your inputs!";
} else {
$msg = "Please check your inputs!";
}
}
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="bootstrap.min.css">
</head>
<body>
<div class="container" style="margin-top: 100px;">
<div class="row justify-content-center">
<div class="col-md-6 col-md-offset-3" align="center">
<img src="images/logo.png"><br><br>
<?php if ($msg != "") echo $msg . "<br><br>" ?>
<form method="post" action="login.php">
<input class="form-control" name="email" type="email" placeholder="Email..."><br>
<input class="form-control" name="password" type="password" placeholder="Password..."><br>
<input class="btn btn-primary" type="submit" name="submit" value="Log In">
</form>
</div>
</div>
</div>
</body>
</html>