【问题标题】:Change Prestashop 1.5.6.2 customer password requirements更改 Prestashop 1.5.6.2 客户密码要求
【发布时间】:2014-09-25 08:20:52
【问题描述】:

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

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

老客户应该仍然可以使用他们的旧密码登录。

谢谢。

【问题讨论】:

    标签: php passwords prestashop requirements prestashop-1.5


    【解决方案1】:

    您需要重写 Validate::isPasswd() 方法。就是这样。

    【讨论】:

    • 好的,所以下面的内容必须被覆盖,对吧? /** * 检查密码有效性 * * 参数字符串 $passwd 验证密码 * param int $size * return boolean 有效性是否正常 */ public static function isPasswd($passwd, $size = 6) { return (Tools: :strlen($passwd) >= $size && 工具::strlen($passwd)
    • 没错。您需要创建一个覆盖文件,在其中覆盖此方法。
    • 好吧,我遇到了不同的情况。我想验证大写、小写、数字和特殊字符的密码字段,所以我配置了我的客户部分运行良好。但是管理员没有加载。我调查并发现 isPasswdAdmin() 也调用了 isPasswd() 并且我的管理员密码不满足该条件。所以我在 isPasswdAdmin() 中重命名了 isPasswd() 并添加了一个包含旧 isPasswd() 内容的新方法。那没有用。我再次更改了我的管理员密码以满足 isPasswd() 但仍然没有工作。有什么解决办法吗?
    【解决方案2】:

    用于智能验证 文件路径 /project_folder/themes/theme_name/templates/_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() 或定义新方法来验证模式

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多