gpt4 book ai didi

mysql - CakePHP登录失败

转载 作者:行者123 更新时间:2023-11-29 08:51:38 25 4
gpt4 key购买 nike

我有简单的 cakephp 应用程序,我使用本教程构建 Simple Authentication and Authorization Application 。我有与教程中完全相同的代码块。

我在我的计算机上使用 Apache/MySQL 运行它,一切正常。当我将其部署到我的共享主机 (Bluehost) 时,我开始登录失败。

我检查了本地和服务器上的 MySQL 数据库。不同之处在于我的本地数据库中的密码是经过哈希处理的,但托管数据库上的密码是纯文本的。 (运行的是完全相同的代码。)(我想澄清这一点,这不是我的意图,显然是不同的行为,但我不知道其原因是什么。)

这是我的 table :

CREATE TABLE users (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(50),
role VARCHAR(20),
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);

这些是我的 Controller 中分别用于注册和登录的相关方法:

public function add() {
if ($this->request->is('post')) {
$this->User->create();
if ($this->User->save($this->request->data)) {
$this->Session->setFlash(__('The user has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The user could not be saved. Please, try again.'));
}
}
}

public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('Invalid username or password, try again'));
}
}
}

最后这是我的模型的 beforeSave() 方法:

public function beforeSave() {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
}

在我的本地计算机上,我可以首先添加一个用户,然后使用该用户登录。在服务器上,我可以添加用户,但是当我想登录时,我看到错误消息“用户名或密码无效,请重试”

最佳答案

看起来您需要定义 beforeSave 函数来接受默认参数。这似乎是 cakephp 和 php 5.4 之间的问题

public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
}

请参阅此处了解更多信息:
http://community.webfaction.com/questions/8397/cakephp-2-auth-failing-on-production-only

关于mysql - CakePHP登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11038941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com