$_SESSION['user_id'] = $login;
setcookie('user_id', '$login' , time()+86000);
header('Location: userindex.php');
function logged_in() {
return (isset($_SESSION['user_id']) || isset($_COOKIE['user_id']) ? true : false;
}
我有会话,但我也想包括COOKIE,但我不知道如何用COOKIE重启SESSION。我不知道如何才能做到这一点。我创建了COOKIE但是无法注销并且对SESSION有问题有人可以帮我修复我的问题????在顶部的每个页面中,我都有login_in函数用于检查用户是否登录,我想知道这些logged_in函数是否检查用户是否有cookie来自动登录用户cookie。我认为它在logged_in函数中必须编写一些代码并且......
答案 0 :(得分:3)
我会注意到这不安全,因为任何人都可以使用像firebug这样的东西创建cookie。
@session_start();
function logged_in() {
if(!isset($_SESSION['user_id']) && isset($_COOKIE['user_id'])) {
$_SESSION['user_id'] = $_COOKIE['user_id'];
}
return isset($_SESSION['user_id']);
}
function logout() {
unset($_SESSION['user_id']);
setcookie("user_id", "", time() - 3600);
header("Location: http://".$_SERVER['HTTP_HOST']);
exit;
}
编辑:添加了注销() - 会删除会话和Cookie'user_id',然后重定向到主页
答案 1 :(得分:1)
首先:你应该用:
设置它setcookie('user_id', $login , time()+86000);
所以$ login没有引号。如果在不同的页面中看到这个cookie,也可以设置路径变量。
删除cookie是通过设置负时间值来完成的:
setcookie('user_id', '' , time()-86000);
答案 2 :(得分:0)
session_start();
function logged_in() {
if(!isset($_SESSION['user_id']) && isset($_COOKIE['user_id'])) {
$_SESSION['user_id'] = $_COOKIE['user_id'];
}
return (isset($_SESSION['user_id'])) && isset($_COOKIE['user_id'])));
}