gpt4 book ai didi

php - 上传记录md5 cakephp

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

我有一个用cakephp开发的sit,我有一个编辑用户的页面。
我的用户表有很多字段,其中之一就是 md5 中的密码。

用户可以修改其所有字段和密码,但如果他将此字段留空,我就无法从数据库中获取旧密码并保存它。

但是在保存密码字段时返回错误。

这是我对 Controller 的操作:

if ($this->request->is ('post')){
$this->User->id = $this->request->data['User']['id'];

if($this->request->data['User']['password'] == ''){
$user = $this->User->find('first',array('conditions'=>array('User.id' => $this->request->data['User']['id'])));
$this->request->data['User']['password'] = md5($user['User']['password']);
$this->request->data['User']['password_confirm'] = md5($user['User']['password']);
}

if ($this->User->save($this->request->data)) {
$this->redirect (array ('action'=>'index'));
}
else{
debug($this->User->validationErrors);
$this->Session->write('flash_element','error');
$this->Session->setFlash ('Errore di salvataggio dello user.');
}
}

这是保存到 UserModel 之前的方法:

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

问题是当我尝试保存字段密码谎言类型不正确时返回错误。如果我在保存之前打印字段密码,我会看到类似: ***** 但如果我打印变量 md5($user['User']['password']) 返回正确的加密密码值。

谢谢

最佳答案

IMO,没有用户编辑其个人资料信息的“密码”字段。

页面上可以有 2 个表单,其中第二个是更改密码表单。这样,例如,如果用户更改了他们的“名字”(第一种形式),您的代码就不必检查他们的密码或对其密码执行任何操作。

在看到许多不同的框架并自己创建系统之后,我不能说我记得我在“野外”见过像你所做的那样处理的任何事情。您需要执行额外的步骤,获取他们的旧密码并将其“放回”,这样当他们想要更改其个人资料详细信息时,您就不会在数据库中丢失他们的密码。

如果出于安全考虑,您可以让他们“确认”其密码,以便在更改个人资料详细信息之前密码必须匹配。

在“编辑个人资料”表单上显示“密码”框只是糟糕的代码逻辑。

关于php - 上传记录md5 cakephp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19916050/

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