涉及的页面是:
我的登录页面工作正常,然后登录后来到仪表板,这也很好!
当我从post_ad.php返回admin.php时出现问题,使用超链接,我重定向到登录页面! 代码实际上无法理解我之前已经正确登录过! 请帮忙解决我的问题!
admin.php的
include 'connection.php';
$user = $_POST['user'];
$pass = $_POST['pass'];
if($user != 'zxc' && $pass != 'zxc')
{
header('Location: login.php');
}
session_start();
?>
<a href="post_ad.php">POST A NEW ADVERTISE</a>
我希望代码能够记住,直到我退出或关闭窗口,我已经登录过一次!
答案 0 :(得分:4)
首先,在任何页面中,使用页面顶部的session_start()而不是代码中间的某个地方。 在login.php文件中,如果用户成功登录,则将用户ID放在$ _SESSION中 例如
$_SESSION['user_id'] = $user_id
假设$ user_id在您的代码中存储用户名
并在登录页面的顶部使用此代码
@session_start();
if(isset($_SESSION['user_id']) && $_SESSION['user_id']!='') {
header("location: admin.php");
}
如果用户已登录,则会将您重定向到管理员页面 在其他页面中,您可以使用
@session_start();
if(!isset($_SESSION['user_id']) || $_SESSION['user_id']=='') {
header("location: login.php");
}
如果用户未登录,则会将您重定向到登录页面
答案 1 :(得分:2)
您每次都会从登录页面检查发布的变量。
从登录以外的页面导航时未设置。
将值存储在会话中(在登录页面操作上)。
$user = $_SESSION['user'];
$pass = $_SESSION['pass'];
现在检查这些值。
另外,请勿忘记在页面开头添加session_start()
。