Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅在调用函数时设置PHP会话?_Php_Session - Fatal编程技术网

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

如何仅在调用函数时设置PHP会话?,php,session,Php,Session,我有这个类(对于另一个问题,我有相同的代码,但对于另一个主题),这很好,我创建了一个Sesiones对象,然后在我想要启动一个新会话时调用iniciarsion函数,但除非我将session_start();在我的Sesiones类之外,会话将不会被维护。我打算在未设置$\u会话时阻止对页面的访问,但如果我将其包括在我的类会话之外,则始终会设置该会话,那么对于我想要的内容,什么是最好的方法呢 session_start();//Here it works on all pages but not

我有这个类(对于另一个问题,我有相同的代码,但对于另一个主题),这很好,我创建了一个Sesiones对象,然后在我想要启动一个新会话时调用iniciarsion函数,但除非我将session_start();在我的Sesiones类之外,会话将不会被维护。我打算在未设置$\u会话时阻止对页面的访问,但如果我将其包括在我的类会话之外,则始终会设置该会话,那么对于我想要的内容,什么是最好的方法呢

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);
        }
    }
}

在将任何内容输出到浏览器之前,必须调用Session_start()。在您的代码中,我认为没有必要在类中调用session\u start。但是它不起作用。

在将任何内容输出到浏览器之前必须调用Session_start()(这是您应该记住的事情)。在您的代码中,我认为没有必要在类中调用session\u start。但是它不会起作用。

在哪里发生
session\u start()
并不重要,只要是在任何东西输出到浏览器之前,因为会话依赖于cookie,cookie依赖于HTTP头,而HTTP头必须在页面内容之前全部发送。这意味着您需要在应用程序中首先做的一件或[如果不是]事情是实例化
Sesiones
对象并调用
iniciarsion()
。检查活动会话的范围有点广。为什么不在会话中为那些有访问权限的人设置一个值,并检查该值是否存在于类中。在哪里发生
session\u start()
并不一定重要,只要是在将任何内容输出到浏览器之前,因为会话依赖于cookie,cookie依赖于HTTP头,和HTTP头必须在页面内容之前全部发送。这意味着您需要在应用程序中首先做的一件或[如果不是]事情是实例化
Sesiones
对象并调用
iniciarsion()
。检查活动会话的范围有点广。为什么不在会话中为具有访问权限的用户设置一个值,并检查该值是否存在于类中。会话\u start()在类或整个代码中不起作用?会话\u start()在类或整个代码中不起作用?