1

我刚开始用 cakePHP 编码。我编码并尝试编写登录和身份验证页面。
我试过这个:

class AppController extends Controller 
{
    public function beforeFilter()
    {
        parent::beforeFilter();
        if ($this->request->action != 'login' && !$this->Session->check('profile')) 
        {
            $this->Session->setFlash('You are not logged in');
            $this->redirect(array(
                'controller' => 'profiles',
                'action' => 'login'
            ));
        }
    }
}

我的问题是我无法登录。我总是得到

“你没有登录”

没有此代码,它可以工作,但不能保护其他页面。
我的路线.php

Router::connect('/', array('controller' => 'profiles', 'action' => 'login'));

我的 ProfilesController.php

public function login()
{
    if ($this->request->is('post')) 
    {
        $profile = $this->Profile->find('first', array(
            'conditions' => array(
                'name' => $this->request->data('Profile.name'),
                'password' => $this->request->data('Profile.password')
            )
        ));
        if ($profile) 
        {
            $this->Session->write('Profile',$profile);
            $this->redirect(array('controller' => 'Projects',
                'action' => 'index'));
        }
        $this->Session->setFlash('Profile and Password does not match!');
    }
}
4

1 回答 1

3

看起来您没有加载身份验证组件,并且您实际上没有登录用户。

在尝试制作自己的身份验证功能之前,您可能需要考虑内置身份验证功能。

认证文件。

http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html

学习 Cake 身份验证的教程。这很简单。

http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

于 2013-06-28T15:18:54.297 回答