|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 mt 于 2017-8-14 20:46 编辑
好像DZ3.2以前的版本在会员注册时邮箱这个项目可以在后台选择是否必填,现在却没有了,虽然对于站长来说,会员注册时填写邮箱在以后的运营中有很大好处(比如群发消息),但是总有部分会员没有那个邮箱,有没有办法解决这个问题呢,答案是肯定的,方法有两种:
1、后台数据库直接修改
登陆php数据库后台,找到common_setting这个表单,找到skey值forgeemail的svalue改为默认的0就可以了,也可以在数据库管理工具或者网站后台运行以下sql语句:
2、如果想在管理员后台随时控制的话,就比较复杂一些,需要修改多个文件的代码。
先上一个效果图吧:
具体操作流程如下:
步骤1:source/admincp/admincp_setting.php 文件
查找:
showsetting('setting_access_register_send_register_url', 'settingnew[sendregisterurl]', $setting['sendregisterurl'], 'radio');
大概是440-441行:
增加以下代码:
showsetting('setting_access_register_forge_email', 'settingnew[forgeemail]', $setting['forgeemail'], 'radio');
步骤2:打开source/language/lang_admincp.php 文件
查找: 一个邮箱只允许注册一个帐户
大概811行,增加以下代码:
'setting_access_register_forge_email' => '取消注册邮箱必填',
'setting_access_register_forge_email_comment' => '开启后如果用不不填写注册邮箱,将自动生成一个邮箱地址',
步骤3:修改source/class/class_member.php
大概611行:
原文是:
$email = strtolower(trim($_GET['email']));
if(empty($this->setting['ignorepassword'])) {
if($_GET['password'] !== $_GET['password2']) {
showmessage('profile_passwd_notmatch');
}
if(!$_GET['password'] || $_GET['password'] != addslashes($_GET['password'])) {
showmessage('profile_passwd_illegal');
}
$password = $_GET['password'];
} else {
$password = md5(random(10));
}
}
修改为(或直接替换以下:)
$email = strtolower(trim($_GET['email']));
if(empty($email) && $_G['setting']['forgeemail']) {
$_GET['email'] = $email = strtolower(random(6)).'@'.$_SERVER['HTTP_HOST'];
}
if(empty($this->setting['ignorepassword']))
{
if($_GET['password'] !== $_GET['password2']) {
showmessage('profile_passwd_notmatch');
}
if(!$_GET['password'] || $_GET['password'] != addslashes($_GET['password']))
{
showmessage('profile_passwd_illegal');
}
$password = $_GET['password'];
}
else {
$password = md5(random(10));
}
}
上传修改过的文件后更新缓存即可。
|
|