他的意思是将原始的“John”存储在数据库中,然后将数据库保存的值和登录表单上的输入名称降低。然后,您仍然拥有与注册方式相同的用户名。
示例添加:
登录.ctp
echo $this->Form->create('User', array('url' => array('controller' => 'users', 'action' => 'register')));
echo $this->Form->input('User.username', array('label' => 'First Name:'));
echo $this->Form->input('User.password', array('label' => 'Password', 'type' => 'password', 'value' => false));
echo $this->Form->submit('Register');
echo $this->Form->end();
考虑到当用户在那里输入用户名和密码时。假设我使用的是用户名“John”。大写的 J 是我们要确保在数据库中的内容。我们不会在保存数据时使用 strtolower。因此,通过使用 cake 的 save() 方法,我们可以完成保存区分大小写的问题。
注册.ctp
public function register()
{
if ($this->Auth->loggedIn()) {
$this->redirect(array('controller' => 'users', 'action' => 'login'));
}
if ($this->request->is('post')) {
if ($this->User->User->saveAll($this->request->data)
{
$this->Session->setFlash(__('Your account has been created', true));
$this->redirect(array('controller' => 'users', 'action' => 'index'));
}}
现在,当我们执行登录操作时:
if ($this->request->is('post')) {
if ($this->Auth->loggedIn()) {
$logged = $this->User->query('Your sql query matching username/password with strtolower, if you need to implement security hash from cakephp you can do that through cakephp hash method');
}
}
基本示例,但应该有所帮助