2011-12-23 85 views
6

我有一個使用Auth組件的自己的登錄系統的CakePHP網站。我想知道以下是否可能:從外面訪問cakephp會話(auth)cakephp

用戶已登錄並正在瀏覽網站。有一次,他可以點擊一個鏈接打開一個外部的php文件。對於外部,我的意思是它可能位於同一服務器的另一個文件夾中,但不在CakePHP應用程序文件夾中。

「棘手」的事情(對我來說)是隻顯示該用戶登錄的php文件的內容(以防止沒有帳戶的用戶訪問這些內容)。我不能在那裏使用Auth,因爲我是「外部」蛋糕......我不知道是否可能使用$ _SESSION,但我不知道如何......

這是可能的嗎?是的,PHP必須在CakePHP應用文件夾系統之外。

任何想法?

+2

var_dump或print_r是非常有用的PHP函數。在$ _SESSION中使用它們,你可以看到CakePHP用它做的一切。看看真的很有趣。 – Vigrond 2011-12-23 21:24:53

+0

前段時間我有同樣的問題:http://stackoverflow.com/questions/6988156/accessing-cakephp-session-variable-from-a-php-script – AlexBrand 2011-12-24 03:05:06

回答

7

是的,你可以訪問cakephp文件夾外的cakephp SESSION。試試這個會話變量

$_SESSION['Auth'] 

如果存在,那麼檢查用戶在這裏

$_SESSION['Auth']['User'] 
+0

感謝您的回答!所以基本上我只需要檢查'$ _SESSION ['Auth'] ['User']'是否存在正確?例如,對於蛋糕,我通常只會執行'$ this-> Session-> check('Auth.User')'來知道用戶是否已登錄...是否等價? – Albert 2011-12-23 22:05:09

+0

是的,它的權利。 – 2011-12-23 22:16:15

+0

好酷!非常感謝你! – Albert 2011-12-24 04:19:08

8

我會添加你還需要會話名稱設置爲「CakePHP的」使用

session_name('CAKEPHP') 

剛之前你的外部應用程序session_start()否則你不能適用Kashif汗建議的解決方案:)

歡呼聲,

+0

謝謝!很多人。我正在尋找這段代碼。 – 2016-02-29 08:54:18

1

這不適用於Cakephp3。致電

session_name("CAKEPHP"); 
session_start(); 

應用程序會話即將到期。