如何在调用函数时保持PHP会话设置?

时间:2016-03-10 20:53:18

标签: php session

我有这个类(我有另一个问题的相同代码,但那是另一个问题),这工作正常,我创建一个Sesiones对象,然后当我想开始一个新会话时调用IniciarSesion函数,但除非我把session_start ();在我的Sesiones课程之外,会话将不会被维护。我打算在没有设置$ _SESSION的情况下阻止对页面的访问,但如果我将其包含在我的课程会话之外将始终设置,那么什么是我想要的最佳方法?

session_start();//Here it works on all pages but not desired behavior
class Sesiones {

    public function IniciarSesion($params, $url = NULL) {
        //session_start(); Where it originally was but It doesn't work on other files
        //Iterar parametros de array params y setearlo en session
        foreach ($params as $param){
            $_SESSION[$param["param"]] = $param["val"];
        }
        //URL para redireccionar
        if (isset($url)) {
            header("Location: " . $url);
        }
    }
    public function CerrarSesion($url = NULL) {
        session_destroy();
        exit();
        //El parametro URL es para saber a que URL redireccionar
        if (isset($url)) {
            header("Location: " . $url);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

在向浏览器输出任何内容之前必须调用Session_start()(这是你应该记住的事情)。在您的代码中,我认为无需在类中调用session_start。然而,它无法发挥作用。