2013-12-16 41 views
2

我正在使用一個現有的PHP應用程序,它具有不同的接口,如管理員,座席和客戶。 我使用codeignitor創建了一個新的代理界面。爲登錄到代理門戶,我正在使用舊應用程序中的現有代理登錄頁面,但登錄成功後,我的新代理界面應該被加載。使用PHP應用程序會話到另一個codeignitor應用程序

在舊應用程序中,使用了會話,agent_id存儲在會話變量中。

當我試圖在我的新代碼中使用此會話變量時,我收到一條錯誤消息...無法找到變量。我怎樣才能使用我的第一個應用程序的會話變量到我的新界面?

當我在我的第一個應用程序和新的codeignitor代碼頁之一中打印會話名稱時,我可以看到兩個會話都不同。我認爲這是問題,因爲codeignitor管理其會話。

我在谷歌搜索瞭解了會話設置保存路徑和所有,我不知道我到底需要做什麼來解決這個問題。

感謝, 拉吉

+0

如果它在同一個域上,它不應該是一個問題 – Grumpy

回答

2

記住這兩個項目/應用程序應該在同一臺服務器

默認情況下codeignitor上存在如下的COOKIE作爲一個會話,所以你必須ovwerwrite該庫與任何PHP本地會話的庫。

然後通過CRUL或POST或URL以雙向加密格式將session_id傳遞給該項目。不要忘了加密會話ID

從項目1:

//to get the session id 
$id = session_id(); 

//do some custom encryption 
$id = 'ajhkdhfasjdhfajsdfhkjadf'; 

**Ref:** 
http://www.php.net/manual/en/function.mcrypt-encrypt.php 

從項目2:

編號: http://www.php.net/manual/en/function.mcrypt-decrypt.php

的初始化會話ID開始之前會議如下

//do some custom encryption 
$id = $this->input->get('id'); 

//decrypt the value 

session_id($id); 

session_start(); 

現在您可以訪問會話值。

0

,當我在我的第一個應用程序打印會話名稱,並在 新codeignitor代碼頁一個,,我可以看到這兩個會議是不同的。 我認爲這是問題,因爲codeignitor管理其會話。

對於CI處理自己的會話是否正確,解決此問題的方法是使用本機會話庫。

https://github.com/EllisLab/CodeIgniter/wiki/Native-session

另一種方法是使CI使用數據庫會話,只是傳遞會話ID,以新的應用程序,這樣就可以從數據庫中選擇正確的數據。

相關問題