PHP MVC -会话不持久


PHP MVC - session not persisting

我正在构建自己的MVC框架,以便正确地学习。

我设法得到一个登录系统工作,但会话似乎不能在页面更改时持续。

我做了一些原因阅读,我在控制器中运行session_start(),因为有些人似乎在指导。

在登录时,我的processLogin方法成功运行并按预期存储会话数据。我知道这已经发生了,因为我在主头文件中做了一个var_dump,当登录表单加载时,它就在那里(我没有在任何时候破坏它)。

我遇到的麻烦是,当成功登录后要做位置更改时,它运行'gallery'方法,会话数组仍然存在,但为空。

真让人恼火,我真的很感激你的帮助。

这是我的扩展控制器类供参考:

session_start();
class Home extends Controller {
    public function index() {
        require 'application/views/_templates/header.php';
        require 'application/views/home/index.php';
        require 'application/views/_templates/footer.php';
    }
    // login function (validation carried out client side)
    public function processLogin() {
        if (isset($_POST['loginUsername'])) {
            $home_model = $this->loadModel("HomeModel");
            $home_model->processLogin($_POST['loginUsername'],   $_POST['loginPassword']);
        }
    }
    public function gallery() {
        require 'application/views/_templates/header.php';
        require 'application/views/home/gallery.php';
        require 'application/views/_templates/footer.php';
    }
}

首先你应该在主文件的开头使用session_start(),通常是index.php而不是控制器(因为我们不知道你的框架是如何构建的)。

你应该确保在你的网页的每一个地方你使用相同的域名-例如www。或者没有www。否则,您应该使用session_set_cookie_params()以其他方式设置它(例如所有子域)