thinksns站外激活时提示输入邮箱和密码的修改方法

作者:alan

问题:通过站外激活的账号,没有邮箱和密码,一代取消绑定就变成了一次性用户

解决:在站外登陆激活的时候,要求输入 邮箱和密码

修改方法:依次修改两个文件即可。

 第一个修改文件路径:apps - home - Lib - Action - PublicAction.class.php

查找 第一处 

// 激活外站登陆
public function initotherlogin(){
if ( ! in_array($_POST['type'], array('douban','sina', 'qq')) ) {
$this->error('参数错误');
}
 
if( !isLegalUsername( t($_POST['uname']) ) ){
$this->error('昵称格式不正确');
}

加入代码:含义检测代码 

//添加EMAIL+密码 BY ALAN QQ8510001 begin
 
        if ( ! $this->isValidEmail($_POST['email']) ) {
$this->error('Email格式错误,请重新输入');
}
if( strlen($_POST['password']) < 6 || strlen($_POST['password']) > 16  ) {
$this->error('密码必须为6-16位,且两次必须相同');
}
if ( ! $this->isEmailAvailable($_POST['email']) ) {
$this->error('Email已经被使用,请重新输入');
}
         //添加EMAIL+密码 end
查找:第二处
// 初使化用户信息, 激活帐号
$data['uname']        = t($_POST['uname'])?t($_POST['uname']):$userinfo['uname'];
加入代码:含义添加入数据库
 //添加EMAIL+密码 BY ALAN QQ8510001
                $data['email']        = t($_POST['email']);
                $data['password']     = md5($_POST['password']);
 

 第二个修改文件路径  apps - home - Tpl - default - Public - otherlogin.html

 查找:代码

 <p>用户名:
      <input type="text" name="uname" value="{$user.uname}"/>
下面加入:
 
EMail: <input type="text" name="email" value=""/>  (下次登录可以使用)<br />
     密码:  <input type="password" name="password" value=""/> (密码)<br />
 
这里的样式可以自定义。。

参与评论

游客评论不支持回复他人评论内容,如需回复他人评论内容请

  • 德江人

    发现一个奇怪的现象,只要一修改apps – home – Lib – Action - PublicAction.class.php验证码就无法显示。

    9年前 (2011-10-18)
    回复
    回复德江人
  • 海虾

    thinksns都是utf8编码的,使用notepad++之类的工具编辑,选择utf8无bom格式,用记事本编辑就不行。

    9年前 (2011-12-28)
    回复
    回复海虾
  • james

    对,windows记事本不支持utf8

    9年前 (2012-01-03)
    回复
    回复james
  • 德江人

    加入代码之后,验证码不显示。

    9年前 (2011-10-18)
    回复
    回复德江人