public function getEmail($data){
$query = $this->db->query("SELECT email FROM " . DB_PREFIX . "customer WHERE SUBSTRING(sha1(CONCAT('" . $data['key'] . "',`email`)),1,20) = '" . $data['passkey'] ."' AND status = '1' AND approved = '1'");
return $query->row;
}
3 回答
在opencart中,有一个默认方法可以通过将第三个参数传递给
/system/library/customer.php::login()
来覆盖登录,因为您需要电子邮件因此,如果你想发送密码重置链接只需修改邮件和发送链接,你也需要电子邮件,并确保你加密电子邮件ID安全
/catalog/controller/account/forgotten.php
之前$ mail现在,当客户点击链接时,它将重定向到更改密码页面,因此我们需要在
/catalog/controller/account/password.php
上通过密码查找关于电子邮件ID的信息现在在上面我们调用了一个模型函数来通过passkey查找有效的电子邮件,所以在_1197866中添加一个新函数
祝好运
好的,我刚刚找错了地方 . 我正在为Opencart寻找这个解决方案但实际上我发现你可以在用户登录页面上使用Joomla 3的默认“忘记密码”链接 .
您可以在www.yoursite.com/index.php?option=com_users&lang=en&view=login找到此链接,然后您将看到“忘记密码”链接 . 执行此操作时,它将更改Joomla用户的密码和Opencart客户的密码 . 所以我只是将Opencart的“Forgot Password”链接重定向到Joomla . 作品完美!谢谢你的帮助!
使用用户名“admin”编辑用户,并将密码字段更改为5f4dcc3b5aa765d61d8327deb882cf99 . 此字符串或散列将密码更改为“密码”(不带引号)
你可以参考
http://www.inmotionhosting.com/support/edu/opencart/339-how-to-reset-my-opencart-admin-password