我使用CodeIgniter框架的原生PHP會話($ _SESSION)。CodeIgniter會話變量不通過
我有一個「登錄」控制器加載視圖,其中用戶輸入登錄名和密碼。 用戶提交登錄表單後,將調用「Login」控制器的authenticate()方法。 如果一切都好,我將一些數據添加到$ _SESSION數組,然後我將用戶重定向到「組織」控制器myOrganisation()方法。 我在login/login(),Login/authenticate()和Organization/myOrganisation()方法中調用session_start(),但仍未傳遞會話,因爲在myOrganisation()方法中會話是新的。
我測試了我的cookie功能,創建了2個測試php頁面,其中我只是回顯會話ID。它完美的作品。 也許我不是把session_start()放在所有需要的地方? (我把它們放在所有控制器方法中)。
登錄控制器:
class Login extends CI_Controller {
public function index() {
session_start();
$this->load->view("Login/index", $data);
public function authenticate() {
session_start();
$_SESSION['login'] = $login; // everything is alright, redirect
header("location: ".base_url()."Organisations/MyOrganisation");
組織控制器:
public function MyOrganisation() {
session_start(); // here session is a new one, not passed
if(isset($_SESSION['login'])) {
是否BASE_URL()返回與您登錄的地點相同的域名?否則您的會話將重新啓動。 – Leven 2012-04-18 21:58:15
出於好奇,是不是有沒有使用會話庫中內置的CodeIgniter的原因?此外,這可能只是您在此輸入的產品,但您尚未關閉第一個功能。當你開始authenticate()時,index()仍然是打開的。在src中爲 – 2012-04-18 22:09:49
,index()被關閉。我沒有使用CI會話,因爲我遇到了一些問題,試圖配置並使其工作。花了4個小時,他們從來沒有工作,所以我決定切換到本地seeions – 2012-04-19 09:15:57