密通学院

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7426|回复: 0

[开发] 解决DZ3.2版的会员注册关于邮箱注册的问题

[复制链接]

282

主题

27

回帖

8万

铜板

超级版主

Rank: 8Rank: 8

积分
89153
QQ
发表于 2017-8-14 20:42:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 mt 于 2017-8-14 20:46 编辑

好像DZ3.2以前的版本在会员注册时邮箱这个项目可以在后台选择是否必填,现在却没有了,虽然对于站长来说,会员注册时填写邮箱在以后的运营中有很大好处(比如群发消息),但是总有部分会员没有那个邮箱,有没有办法解决这个问题呢,答案是肯定的,方法有两种:
1、后台数据库直接修改
登陆php数据库后台,找到common_setting这个表单,找到skey值forgeemail的svalue改为默认的0就可以了,也可以在数据库管理工具或者网站后台运行以下sql语句:


324324.png
游客,如果您要查看本帖隐藏内容请回复

2、如果想在管理员后台随时控制的话,就比较复杂一些,需要修改多个文件的代码。
先上一个效果图吧:
sss.png
具体操作流程如下:
步骤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));
}
}

上传修改过的文件后更新缓存即可。

如果您有业务需求,可以和我联系:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

首页|Archiver|手机版|小黑屋|密通学院:专业网络营销服务商

GMT+8, 2024-12-22 19:34 , Processed in 0.093750 second(s), 28 queries QQ

Powered by XMT Inc. © 2015-2025 ArrayV1.0 豫ICP备17022382号

系统运营:密城通 豫公网安备 41018302000212 号

快速回复 返回顶部 返回列表