No soy capaz de realizar un login correcto con el siguiente código, de hecho el mensaje de error ($mensaje) ni siquiera se muestra, independientemente de lo que haga:
Código PHP:
if($_POST['acceso']) {
$usuario = mysqli_real_escape_string($_POST['username']);
$contrasena = mysqli_real_escape_string($_POST['password']);
$consulta = "SELECT id, usuario, contrasena FROM usuarios WHERE usuario = '$usuario'";
if ($resultado = $conexion->query($consulta)) {
$columnas = $resultado->num_rows;
if ($columnas == 1) {
while ($campo = $resultado->fetch_object()) {
$hash = $campo->contrasena;
if (password_verify($contrasena, $hash)) {
$_SESSION['id'] = $campo->id;
$_SESSION['usuario'] = $campo->usuario;
header("Location:index.php");
} else {
$mensaje = "Contraseña incorrecta.";
}
}
} else {
$mensaje = "El usuario introducido no existe.";
}
}
}
¿Me podríais ayudar a encontrar el error? Gracias.