Discuz! 升级到 X5 后,在注册新用户时,E-mail 变成了可以留空不填的项目。
验证电子邮箱,是非常有效的反垃圾注册措施,网站通常会校验邮箱地址来阻止相同用户注册大量账号灌水甚至发布违规内容。
如果在注册时不要求用户提供邮箱地址,而注册后又要求用户验证邮箱地址,会造成体验割裂。
很遗憾的是,Discuz! X5 在这一点上做得非常粗糙、扯淡、不人性化,它直接在代码中写死了,没有提供任何配置的选项,既不能在管理后台配置,也不能在配置文件中配置。
在脚本文件 source/class/class_member.php 如下代码直接将 E-mail 固定为可选项目- function on_register() {
- global $_G;
- $_G['setting']['forgeemail'] = true;
复制代码 唯一可以配置的地方是管理后台“全局-注册与访问控制-注册-注册是否需要填写邮箱”。如果设置为“否”,E-mail 直接从注册表单消失;如果选择“是”,E-mail 是可选项目,可以留空不填。
要解决这个问题,先保持上述配置为“是”,然后修改 class_member.php 代码,将 true 改为 false。- $_G['setting']['forgeemail'] = false;
复制代码 当然,也可以加一些条件做灵活处理。 |
|