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 />
 
这里的样式可以自定义。。
订阅评论
提醒
guest的头像

4 评论
内联反馈
查看所有评论
德江人的头像
德江人
2011-10-18 上午2:11

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

德江人的头像
德江人
2011-10-18 上午2:42

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

海虾的头像
海虾
回复给  德江人
2011-12-27 下午11:51

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

一柱擎天的头像
编辑
回复给  海虾
2012-01-03 下午12:43

对,windows记事本不支持utf8

4
0
希望看到您的想法,请您发表评论x