php设置cookie过期时间,关闭浏览器就失效?excuse me?

php设置cookie过期时间,为什么关闭浏览器就失效了呢?不能保存cookie我这记住密码怎么做?excuse me

框架:CI
浏览器:google

这个怎么搞阿喂(这大过年的,怎么这么多问题啊,不开心)


问题已解决。

$timeout = time() + 60 * 60 * 24 * 31;

这个变量是要当做密码的过期时间给数据库的,但是我把他给了cookie,这家伙就不乐意了,给我整这BUG,折腾我好久...

正确的是:

$expire = 60 * 60 * 24 * 31;

搞定!

阅读 9.9k
4 个回答

是不是浏览器设置关闭清理cookie了?

https://zhidao.baidu.com/ques...
相信楼主知道什么事cookies吧?每次登陆的时候,密码会保存在本机中,所以下次登陆直接从本机中调用

至于如何写入Cookies?
Response.Cookies("字段名")=变量或字符串,
例如:Response.Cookies("name2")="Dingdang"

如何设置Cookies时间?
Response.Cookies("字段名").expires=时间函数+N,
例如:Response.Cookies("name2").expires=date+1,表示Cookies保存1天,
再比如:Response.Cookies("name2").expires=Hour+8,表示Cookies保存8小时。

在以往的ASP教程中,很少有介绍Cookies退出的方法。在“退出”这个ASP页中可以这样写:
Response.Cookies("字段名")=""
之后,在客户端的浏览器就清除了Cookies,并且Cookies文件会消失。注意有多少个字段,就要写多少句来清除。

如何读取Cookies?
变量名=Request.Cookies("字段名"),
例如:name2=Request.Cookies("name2")
如果网页中写入<%=name2%>这句,则会显示“Dingdang”。
也可以这样直接读取Cookies,<%=Request.Cookies("name2")%>

这是cookies 的方式;

上面部分来自百度知道: https://zhidao.baidu.com/ques...

另;现在一般都用token
下面的是自己写的;
cokies :
/**

 * 登陆cookie
 */
public function addCookie($remember=false){
    $token = $this->initLoginToken();
    $addCookie = Yii::$app->response->cookies;
    if($remember){
        $addCookie->add(new Cookie([
            'name' => 'token',
            'value' => $token,
            'expire' => time()+60*60*24*30
        ]));
        $addCookie->add(new Cookie([
            'name' => 'mobilephone',
            'value' => $this->_mobilephone,
            'expire' => time()+60*60*24*30
        ]));
    }else{
        $addCookie->add(new Cookie([
            'name' => 'token',
            'value' => $token,
        ]));
        $addCookie->add(new Cookie([
            'name' => 'mobilephone',
            'value' => $this->_mobilephone,
        ]));
    }
}

我的恰恰相反,浏览器关闭cookie失效,然后我设置了过期时间为30天就好了

redis + token, 设置过期时间,过期了让重新登录,这个时候update token的值和时间,同时此种也可以应用 在单点登录下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题