Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php regexp验证后的条令密码哈希_Php_Doctrine_Validation - Fatal编程技术网

Php regexp验证后的条令密码哈希

Php regexp验证后的条令密码哈希,php,doctrine,validation,Php,Doctrine,Validation,我在数据库上保存密码时遇到问题。我有一个带有复杂regexp验证程序minlenght+特殊字符+字母数字的密码字段。发送表单后,验证程序将检查密码值。之后,若该值有效,我希望散列密码并最终保存该值,但regexp验证器仍然验证字段并返回错误 如何在最终保存哈希值之前禁用验证器 对不起我的英语 代码: 关于用户模型: 在侦听器上: 也许发一些代码。您只需要确保在散列之前进行验证。所以,它将进行验证,然后在验证之后,您可以对其进行散列并存储。确切地说,我知道这是postValidate侦听器,但问

我在数据库上保存密码时遇到问题。我有一个带有复杂regexp验证程序minlenght+特殊字符+字母数字的密码字段。发送表单后,验证程序将检查密码值。之后,若该值有效,我希望散列密码并最终保存该值,但regexp验证器仍然验证字段并返回错误

如何在最终保存哈希值之前禁用验证器

对不起我的英语

代码:

关于用户模型:

在侦听器上:


也许发一些代码。您只需要确保在散列之前进行验证。所以,它将进行验证,然后在验证之后,您可以对其进行散列并存储。确切地说,我知道这是postValidate侦听器,但问题完全没有解决-我更改了公共函数PostValidatedActrine_Event$Event->公共函数postValidate$Event,它可以工作!
 public function setTableDefinition()
 {
     $this->hasColumn('password', 'string', 32, array ('notnull'=>true, 'minlength'=>8, 'regexp'=> '/^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$/'));
     .......
 }

 public function setUp()
 {
        $this->addListener(new userChangeListener());
 }
class userChangeListener extends Doctrine_Record_Listener
{
    public function postValidate(Doctrine_Event $event)
    {
        $invoker = $event->getInvoker();
        $invoker->password = md5($invoker->password);
    }   
}