【问题标题】:Kohana 'equals' validator does not accept sha1 function?Kohana 'equals' 验证器不接受 sha1 功能?
【发布时间】:2012-01-06 14:32:07
【问题描述】:

我正在制作一个用于验证密码更改的 kohana 验证器。我想在验证器中插入检查旧密码是否与用户引入的旧密码相匹配。我把规则是这样的:

     ->rule(sha1('old_password'), 'equals', array($this->password));

但是......它似乎并没有验证是否发生了相等性。这个怎么可能? (如果我使用 sha1 进行验证,则会向我抛出旧通行证与插入的通行证不匹配的错误,但是,当然,在这种情况下,它会将明文与 sha1 加密的通行证进行比较。)

有什么建议吗?

【问题讨论】:

  • this->password 已经散列了吗?你怎么有old_password
  • 是的 this->password 是存储在数据库中的用户密码 - 已经散列。 old_password 以明文形式通过 post 接收

标签: php kohana sha1 validation


【解决方案1】:

这不是您使用验证规则的方式。第一个参数是字段名称,第二个参数是规则,第三个参数是要传递给规则的任何参数。

【讨论】:

  • 是的,这是真的。但就我而言,是否有可能进行我想要的这种验证?直接从验证器验证 sha1('old_password') 是否等于 post 收到的值?谢谢
  • 也许:rule('array_key', 'matches', array(':validation', ':field', $this->password)) 您需要在数组中设置现有密码,并在其上运行验证,与新值相比。在您的示例中不清楚哪个是哪个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 2020-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多