在这里,CAKEPHP 2.3的完整登录和身份验证应用程序教程 我得到了一些构建身份验证功能的提示。
我现在正在使用使用 html 而不是 ctp 文件的 PHPTAL。
有没有人使用html文件配合Cake的身份验证?
谢谢。
更新:
登录.html[查看]
<form method="POST" tal:attributes="action string:/users/login">
<input type="text" name="username" size="15" maxlength="30" placeholder="your email" /><br />
<input type="password" name="password" size="15" maxlength="15" placeholder="password" /><br />
input type="submit" value="log in" />
</form>
用户控制器.php[控制器]
public $components = array('RequestHandler',
'Auth' => array(
'authenticate' => array(
'Form' => array('userModel' => 'User',
'fields' => array('username' => 'email',
'password' => 'password'))),
'loginRedirect' => array('controller' => 'pages', 'action' => 'display',
'landing'),
'logoutRedirect' => array('controller' => 'new_boards', 'action' => 'login'),
'loginAction' => array('controller' => 'pages', 'action' => 'display',
'landing'),
'authError' => 'Input youer email and password correctly, please',));`
public function beforeFilter() {
$this->Auth->allow('login', 'logout', 'viewUser', 'showHome');
if ($this->Session->check('User.100000001.id')) {
$this->current_user_id = $this->Session->read('User.100000001.id');
} else {
$this->current_user_id = 100000001;
}
}
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {// failed here
return $this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('wrong email or password'), 'default', array(), 'auth');
}
}
}
但是我没有在我的数据库中创建用户表,这是问题所在吗?
CakePHP 默认支持 ctp 文件作为其视图文件。如果要对视图文件使用任何其他扩展名,只需在控制器或AppController文件中进行更改即可。看看下面的代码:
public $ext = '.php';
Mention it in your Controller or AppController file.
我刚才解决了两个多月。
在谷歌小组讨论中看到这里,我刚才回答了。
祝那些有类似问题的人好运!