密通学院

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7449|回复: 0

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

[复制链接]
  • TA的每日心情
    可爱
    2018-6-29 10:04
  • 289

    主题

    319

    帖子

    9万

    铜板

    超级版主

    Rank: 8Rank: 8

    积分
    93815
    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));
    }
    }

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

    如果您有业务需求,可以和我联系:http://wpa.qq.com/msgrd?V=3& ... yes&from=discuz
    回复

    使用道具 举报

    快速回复: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-3-29 22:06 , Processed in 0.146485 second(s), 30 queries QQ

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

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

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