我想做一个‘一星期内自动登录’功能,后端登录代码如下:`
class loginController extends core\lib\Controller{ public function login() { if($_POST['autoLogin']==1) { ini_set('session.gc_maxlifetime', "604800"); // 秒 ini_set("session.cookie_lifetime","604800"); // 秒 } session_start(); if(strtolower($_SESSION['vCode'])!=strtolower($_POST['vCode'])) { echo 'vCode_error'; exit(0); } $model=new mongoModel('wind','users'); $name=$model->findOne('name',$_POST['username']); if(!empty($name)) { if($name['password']==$_POST['password']) { $_SESSION['username']=$_POST['username']; echo 'success'; } else echo 'password_error'; } else { echo 'user_error'; } } }`
通过前端传来的‘ autoLogin ’值来判断用户是否选择了‘一周内自动登录’这个 checkbox,如果选择,则更改 session 和保存了 sessionid 的 cookie 的最大保存时间为 1 个星期。但是我发现这样不行, cookie 的有效期依然为结束会话时销毁,但是我把:
ini_set('session.gc_maxlifetime', "604800");
ini_set("session.cookie_lifetime","604800");
这两段代码放到项目入口文件里, cookie 的有效期成功到了一个星期以后,这是为啥呢?作用域的问题吗? 新手求问。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.