php模拟登陆,跳转页面问题
把你的登录信息保存在一个session中,如
login.php
<?php
// 表单提交后...
$posts = $_POST;
// 清除一些空白符号
foreach ($posts as $key => $value) {
$posts[$key] = trim($value);
}
$password = md5($posts["password"]);
$username = $posts["username"];
$query = "SELECT `username` FROM `user` WHERE `password` = '$password' AND `username` = '$username'";
// 取得查询结果
$userInfo = $DB->getRow($query);
if (!empty($userInfo)) {
// 当验证通过后,启动 Session
session_start();
// 注册登陆成功的 admin 变量,并赋值 true
$_SESSION["admin"] = true;
} else {
die("用户名密码错误");
}
?>
我们在需要用户验证的页面启动 Session,判断是否登陆:
<?php
// 防止全局变量造成安全隐患
$admin = false;
// 启动会话,这步必不可少
session_start();
// 判断是否登陆
if (isset($_SESSION["admin"]) && $_SESSION["admin"] === true) {
echo "您已经成功登陆";
} else {
// 验证失败,将 $_SESSION["admin"] 置为 false
$_SESSION["admin"] = false;
die("您无权访问");
}
?>
没大看懂啊,"SELECT `username` FROM `user` WHERE `password` = '$password' AND `username` = '$username'"; 是在操作数据库吗?我只是模拟登陆,不涉及数据库啊
我登陆成功是保存了cookie,跳转页面时就是用的这个cookie,但是跳转的页面还是显示没有登陆
如果你用cookie就永不到session,用cookie验证的是跳转后的页面检查用户id,根据id从数据库中查找password,对比md5(password)与cookie得到是否登陆