2011-12-23 89 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(); 

应用程序会话即将到期。