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