我在PHP中遇到一个问题。我有登录页面。当我在写电子邮件和密码并单击登录后尝试登录localhost时,将我重定向到仪表板。但是,当我将页面上传到托管站点并尝试在线进行访问时,它最初并不会重定向我,我必须刷新或登录一次以上的时间来重定向我。我该如何解决?谢谢。 这是我的PHP代码:
<?php
session_start();
if (isset($_SESSION['user_name']) && !empty($_SESSION['user_name'])){
header('Location: dashboard/index.php');
}
?>
<?php
if (isset($_POST['login'])){
$user_email = $_POST['user_email'];
$user_password = $_POST['user_password'];
try{
include 'dashboard/includes/db.php';
$query = "SELECT * FROM users WHERE user_email = :user_email AND user_password = AES_ENCRYPT(:password, :key)";
$send_info = $connection->prepare($query);
$send_info->bindParam(':user_email', $user_email);
$send_info->bindParam(':password', $user_password);
$send_info->bindParam(':key', $key);
$send_info->execute();
$send_info->setFetchMode(PDO::FETCH_OBJ);
$result = $send_info->fetchAll();
if(count($result) == 0){
$message = "<h6 class='text-danger mt-2'>Chybný email alebo heslo</h6>";
}
else{
foreach ($result as $item){
$_SESSION['user_id'] = $item->user_id;
$_SESSION['user_email'] = $item->user_email;
$_SESSION['user_name'] = $item->user_name;
$_SESSION['user_lastname'] = $item->user_lastname;
$_SESSION['user_role'] = $item->user_role;
$_SESSION['user_function'] = $item->user_function;
$_SESSION['user_image'] = $item->user_image;
header('Location: dashboard/index.php');
exit;
}
}
}
catch (Exception $e){
echo $e;
}
}
?>
答案 0 :(得分:1)
我不喜欢?>(空白)<?php部分。在header()调用之前输出任何内容都会产生意想不到的后果。另外,您还会错过第一个标头之后的exit()。