无法注销-始终使用php会话和cookie登录
我正在使用此函数创建登录会话和cookie无法注销-始终使用php会话和cookie登录,php,session,cookies,logout,unset,Php,Session,Cookies,Logout,Unset,我正在使用此函数创建登录会话和cookie function startSession($time,$ses) { session_set_cookie_params($time,'/','.domain.com',false,true); // if I use www.domain.com the session won't start and the user won't be able to sign in session_name($ses); if(sess
function startSession($time,$ses) {
session_set_cookie_params($time,'/','.domain.com',false,true);
// if I use www.domain.com the session won't start and the user won't be able to sign in
session_name($ses);
if(session_id() == '') {
session_start();
}
if (isset($_COOKIE[$ses]))
setcookie($ses, $_COOKIE[$ses], time() + $time, "/");
}
登录页面的头部包含此代码
ini_set('session.cookie_lifetime',99999999);
ini_set('session.gc_maxlifetime',99999999);
ini_set('session.use_trans_sid', false);
ini_set('session.use_only_cookies' , true);
if(session_id() == '') {
session_start();
}
startSession($time = '99999999', $ses = 'mySession');
如果凭证正确,我调用函数
startSession($time = '99999999', $ses = 'mySession');
并将值作为数组添加到其中
$_SESSION['mySession'][0] = 'value1';
$_SESSION['mySession'][1] = 'value2';
然后将用户重定向到头中包含此代码的索引页
ini_set('session.cookie_lifetime',99999999);
ini_set('session.gc_maxlifetime',99999999);
ini_set('session.use_trans_sid', false);
ini_set('session.use_only_cookies' , true);
if(session_id() == '') {
session_start();
}
startSession($time = '99999999', $ses = 'mySession');
“注销”页面包含此代码
session_start();
unset($_SESSION['mySession']);
session_destroy();
unset($_COOKIE['mySession']);
setcookie('mySession', null, -999999999, '/');
$_SESSION['mySession'] = array();
$_SESSION['mySession'][0]=' ';
$_SESSION['mySession'][1]=' ';
session_regenerate_id(true);
然后,用户再次被重定向到索引页,但注销过程不起作用,用户会自动再次登录。
是什么让用户通过取消会话和cookie再次登录?有一个非常简单的登录和注销解决方案 登录:
<?php
# Firstly:
session_start();
# Suppose authentication is successful and you have a user array...
# $user = array('id' => 5, 'name' => 'Rayn', 'email' => 'xyz@gmail.com');
# Now you want to log that user in.
$_SESSION['user'] = $user;
# Now if I want to add the cookie.
setcookie('user', $user, time()+3600*24*30, '/');
# It is time() + 30 Days.
# Now check in your protected pages...
if (!empty($_COOKIE['user'])) {
$_SESSION['user] = $_COOKIE['user'];
}
#and focus your concentration on the session.
if (empty($_SESSION['user])) {
// Redirect him to the login page.
}
?>
<?php
# Firstly:
session_start();
unset($_SESSION['user']);
setcookie('user', NULL, time() - 3600*24, '/');
# It is actually time() - 24 Hours.
# You have wrote only -[some time value]. Which is a negative time.
?>