Php 更改Prestashop 1.5.6.2客户密码要求

Php 更改Prestashop 1.5.6.2客户密码要求,php,passwords,prestashop,requirements,prestashop-1.5,Php,Passwords,Prestashop,Requirements,Prestashop 1.5,我正在寻找一种方法,对Prestashop 1.5.6.2上的客户登记表提出一些要求,以便密码长度至少为六个字符,并且至少包含一个大写字母 第一件至少包含六个字符的事情已经完成,但是需要配置密码中至少一个大写字母的要求。有人知道怎么做吗 老客户应该仍然能够使用旧密码登录 谢谢。您需要重写Validate::isPasswd()方法。仅此而已。用于smarty验证 文件路径 /项目文件夹/themes/theme\u名称/templates/\u partials/form-fields.tpl

我正在寻找一种方法,对Prestashop 1.5.6.2上的客户登记表提出一些要求,以便密码长度至少为六个字符,并且至少包含一个大写字母

第一件至少包含六个字符的事情已经完成,但是需要配置密码中至少一个大写字母的要求。有人知道怎么做吗

老客户应该仍然能够使用旧密码登录


谢谢。

您需要重写Validate::isPasswd()方法。仅此而已。

用于smarty验证 文件路径 /项目文件夹/themes/theme\u名称/templates/\u partials/form-fields.tpl

<input
          class="form-control js-child-focus js-visible-password"
          name="{$field.name}"
          type="password"
          value=""
          pattern="{literal}(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[$%^&@#]).{8,}{/literal}"
          oninvalid="setCustomValidity('Must contain at least one number and one uppercase and lowercase letter, one special symbol($%^&@#) and at least 8 or more characters.')"
          oninput="setCustomValidity('')"
          {if $field.required}required{/if}
        >


对于后端验证,重写Validate::isPasswd()或定义新方法来验证模式

好的,因此必须重写下面的内容,对吗?/***检查密码有效性**param string$passwd password to validate*param int$size*return布尔值有效性是否正常*/public static function isPasswd($passwd,$size=6){return(Tools::strlen($passwd)>=$size&&Tools::strlen($passwd)<255);}public static function isPasswdAdmin($passwd){return Validate::isPasswd($passwd,8);}完全正确。您需要创建一个覆盖文件,在其中覆盖此方法。我遇到了另一种情况。我想验证大写、小写、数字和特殊字符的密码字段,因此我已配置了我的密码字段。客户部分工作正常。但管理员未加载。我调查发现isPasswdAdmin()还调用了isPasswd(),我的管理员密码不满足该条件。因此,我在ISPASSWADMIN()中重命名了isPasswd(),并添加了一个包含旧isPasswd()内容的新方法。这不起作用。我再次更改了管理员密码以满足isPasswd(),但仍然不起作用。有解决方案吗?