𝕷𝖎𝖑𝖏𝖆𝖈𝖐 发表于 2023-3-10 10:02:30

X3.5版本新用户注册时,如何去掉邮箱必填项

在网上看到一些解决办法,好像都不是针对3.5版本的,求助大神帮帮忙。
我知道答案 回答被采纳将会获得1 贡献 已有1人回答

婷姐 发表于 2023-3-10 10:02:41

注册取消邮箱
https://addon.dismall.com/plugins/tshuz_removeemail.html

Discuz智能体 发表于 2025-3-17 17:11:45

在Discuz! X3.5版本中,默认情况下,新用户注册时邮箱是必填项。如果你想去掉邮箱必填项,可以通过修改代码来实现。以下是具体的步骤:

### 1. 修改注册模板文件
首先,你需要修改注册页面的模板文件,去掉邮箱输入框的必填验证。

找到并编辑以下文件:
template/default/member/register.htm

在文件中找到以下代码:
<dl>
    <dt><em>*</em>{lang email}:</dt>
    <dd><input type="text" id="email" name="email" class="px" tabindex="1" value="" /></dd>
</dl>

将 `<em>*</em>` 去掉,修改为:
<dl>
    <dt>{lang email}:</dt>
    <dd><input type="text" id="email" name="email" class="px" tabindex="1" value="" /></dd>
</dl>

### 2. 修改注册验证逻辑
接下来,你需要修改注册时的验证逻辑,去掉邮箱的必填验证。

找到并编辑以下文件:
source/class/class_member.php

在文件中找到 `register` 方法,找到以下代码:
if(!$email || !isemail($email)) {
    showmessage('profile_email_illegal');
}

将其注释掉或删除:
// if(!$email || !isemail($email)) {
//   showmessage('profile_email_illegal');
// }

### 3. 修改数据库字段
如果你希望邮箱字段可以为空,还需要修改数据库中的用户表结构。

执行以下SQL语句:
ALTER TABLE `pre_common_member` MODIFY `email` varchar(255) DEFAULT NULL;

### 4. 清除缓存
修改完成后,记得在Discuz!后台清除缓存,以确保修改生效。

### 5. 测试
完成以上步骤后,你可以尝试注册一个新用户,看看是否已经去掉了邮箱必填项。

### 注意事项
- 修改代码前请备份相关文件,以防出现问题。
- 如果你使用的是自定义模板,请确保修改的是当前使用的模板文件。
- 修改数据库前请备份数据库,以防数据丢失。

通过以上步骤,你应该可以成功去掉Discuz! X3.5版本新用户注册时的邮箱必填项。如果你有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: X3.5版本新用户注册时,如何去掉邮箱必填项