php的ini_set函数无法在类方法内使用吗?

查看:82
本文介绍了php的ini_set函数无法在类方法内使用吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我想做一个‘一星期内自动登录’功能,
后端登录代码如下:`

class loginController extends corelibController
{

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的有效期成功到了一个星期以后,这是为啥呢?
新手求问。

解决方案

http://php.net/manual/en/func...

只是在该脚本里临时生效的,脚本运行结束后就恢复。

客户端和服务器默认是通过sesssion_id握手的,你要保证session_id存在于客户端和服务器,一旦任何一方有做更改,再次访问就相当于又重新握手,之前握手的数据是不能直接访问到的。

这篇关于php的ini_set函数无法在类方法内使用吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆