2017-01-02 66 views
2

使用會話我在表單控制器有一個會話的會話是建立在用戶保存 會話影響表單頁面,所以我的問題是:不能笨

,如果我加載網頁時沒有點擊節省未定義指數[會議索引]出現錯誤

所以我創建會話在主頁 但問題是,如果我在窗體加載頁面,而在訪問主頁第一未定義索引錯誤出現 我試着調用方法session_start(),但我得到了這個錯誤 遇到一個PHP錯誤

嚴重性:通知消息:一個會議已經開始了 - 忽略的session_start()文件名:意見/ form.php的行號:5

+0

獲得的數據看來你使用一個會話變量用戶點擊保存button.So你可能之前設置爲null這個變量之後用戶點擊保存按鈕。 – dimis283

+0

郵政編碼在這裏.... –

+0

所以我可以幫你。 –

回答

2

我強烈建議使用默認的CI會話庫。您可以使用autoload.php自動加載會話。您的會話將自動啓動,無需撥打session_start()

然後用$this->session->set_userdata('save', 'true');代替$_SESSION['save']="true"

我認爲你需要檢查是否session['save']是真的還是假的,所以事先必須通過默認宣佈session['save']是「false」,其中在routes.php文件中指定的默認控制器,並且還確保session['save']指數已經在你的表單頁面控制器進行定義,檢查是這樣的:

if ($this->session->userdata('save')) { 
    // do something when exist 
} else { 
    $this->session->set_userdata('save', 'false'); 
} 
1

我不知道爲什麼你想實現作爲CI提供的強大工具之一,CI內部自己的會話管理是一個靈活,簡單但功能強大的會話管理系統。

即便如此,一個簡單的解決方案就是簡單地檢查會話變量是否設置在您的表單中,如果沒有設置,則將其設置爲0.在您的控制器中,您可以處理該問題,即檢查值是否爲0,如果是,則啓動會話並分配會話變量,或者拋出用戶,或者在沒有找到會話時執行需要的應用程序,或者執行任何您需要的操作設置爲0表示會話尚未激活。

1

您的會話會自動啓動,就沒有必要在每一個控制器來調用session_start()。 codeigniter會話庫照顧它。

首先你必須加載會話庫。 application/config/autoload.php

$this->load->library("session"); 

如果您已經加載了,則不需要再次加載。

要在會話中設置數據

$this->session->set_userdata("KEY","VALUE"); 

從會議

$this->session->userdata("KEY");