2013-03-13 57 views
0

Iam新cakephp和iam使用身份验证我的登录utiities ...我想重定向到登录页面incase我的会话experies为我所有的行为...我写代码像\如何重定向到登录页面是会话experies

public function index() {   
    if(!$this->Session->read('username')) 
     $this->logout(); 
    $this->set('users', $this->paginate());   
} 

但我所有的行动,如加(),编辑()......每次我需要检查的会话变量...如果我写这样

public function __construct() 
{ 
    if(!$this->Session->read('username')) 
     $this->logout(); 
} 
在__construct条件

它给我错误像

Error: Call to a member function read() on a non-object 

任何人都可以建议我

+0

尝试[认证组件](http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html) – 2013-03-13 06:42:07

回答

0

尝试

if (!$this->Session->valid()) { 
    $this->logout(); 
} 
+0

不能......它给我“错误:调用成员函数有效()在非对象\t “ – Gautam3164 2013-03-13 06:18:04

+0

怎么样session-> check()? – Ares 2013-03-13 06:20:15

+0

同样的错误:调用非对象的成员函数check() – Gautam3164 2013-03-13 06:21:56

0

貌似你没有包括SessionComponent。

试着在你的AppController先加

$components = array('Session');

然后检查文档的详细信息:http://api.cakephp.org/2.3/class-SessionComponent.html

+0

Yah我补充说,即使 – Gautam3164 2013-03-13 07:40:02

+0

你可以发布完整的控制器代码吗?和你的AppController的代码? – nahri 2013-03-15 12:09:37

+0

也尝试从Cookbook重建这两个示例。 http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html和http://book.cakephp.org/2.0/en/tutorials-and-examples/简单-ACL控制的应用程序/简单-ACL-受控application.html。如果你必须在_EVERY_控制器的_EVERY_动作中检查你的会话,那么你做错了什么。 Cake已经在AuthComponent中提供了这个功能。 – nahri 2013-03-15 12:11:29

0

使用AuthComponent如果会话到期和用户试图访问受保护的页面,他将被自动重定向到登录页面。

相关问题