QQ 互联用户在注册时默认无需填写密码,虽然会让用户更便捷,但却会在一些特殊情况下带来麻烦,比如如果不用某一天 QQ 登陆服务出了 「意外」,那我们网站的用户怎么登陆。
  抛去部分站长担心的用户可控性这一点不说,单就不设独立密码无法同步登录 UCENTER 下其它应用这一点,我就认为在注册时设置独立密码是非常必要的。特别是很多站点高度整合了一些附属的应用,比如点评、外部分类信息系统等,如果不能让用户同步登录,是严重影响用户体验的。
  通过下面的几个步骤,可以完美实现 QQ 互联用户注册时完成独立密码的设置。但需要注意的是,注册完成后首次自动进入登录状态下,此时 UCENTER 的
应用仍然无法同步登录,需要用户退出后第二次登录时,才能实现登录的同步 (但我认为到这一步已经不是什么问题了,可以在页面上做一个提示) 。
1 、打开文件 source/plugin/qqconnect/template/module.htm 文件,查找

  1. $('{$_G['setting']['reginput']['password']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
  2. $('{$_G['setting']['reginput']['password']}').outerHTML += '$js1';
  3. $('{$_G['setting']['reginput']['password']}').required = 0;
  4. $('{$_G['setting']['reginput']['password2']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
  5. $('{$_G['setting']['reginput']['password2']}').required = 0;

修改成

  1. //$('{$_G['setting']['reginput']['password']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
  2. $('{$_G['setting']['reginput']['username']}').outerHTML += '$js1';
  3. $('{$_G['setting']['reginput']['password']}').required = 1;
  4. //$('{$_G['setting']['reginput']['password2']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
  5. $('{$_G['setting']['reginput']['password2']}').required = 1;

2 、打开文件 source/module/member/member_connect.php ,查找

  1. $ctl_obj->setting['ignorepassword'] = 1;

在前面加两道斜杠 // 将它注释掉。

3 、打开文件 source/module/member/member_connect_register.php ,查找

  1. DB::query("INSERT INTO
    ".DB::table('common_member_connect')." (uid, conuin, conuinsecret,
    conopenid, conispublishfeed, conispublisht, conisregister,
    conisqzoneavatar, conisfeed) VALUES ('$uid', '$conuin', '$conuinsecret',
    '$conopenid', '$conispublishfeed', '$conispublisht', '1',
    '$is_qzone_avatar', '$user_auth_fields')");

修改成 (只变动了一个数字)

  1. DB::query("INSERT INTO
    ".DB::table('common_member_connect')." (uid, conuin, conuinsecret,
    conopenid, conispublishfeed, conispublisht, conisregister,
    conisqzoneavatar, conisfeed) VALUES ('$uid', '$conuin', '$conuinsecret',
    '$conopenid', '$conispublishfeed', '$conispublisht', '0',
    '$is_qzone_avatar', '$user_auth_fields')");

效果如下图:

snmw.cn.png