Discuz home模块解析(二)

这篇文章将继续分析home模块其余的功能。

invite模块

invite模块是邀请注册或者成为好友功能,邀请功能可以在管理后台的全局->注册与访问控制中开启。普通用户邀请的链接如下:

http://127.0.0.1/home.php?mod=invite&id=8&c=zakbhb

管理员批量邀请的链接如下:

http://127.0.0.1/home.php?mod=invite&u=1&c=7219c3069259f602

用户通过该链接访问论坛,论坛调用invite模块进行认证等操作,invite模块的主要功能如下:

$id = intval($_GET['id']);//普通用户邀请链接的邀请码id
$uid = intval($_GET['u']);//管理员批量邀请链接的管理员id
$appid = intval($_GET['app']);
$acceptconfirm = false;//用户是否接受邀请
if($_G['setting']['regstatus'] < 2) {
   //论坛未开启邀请注册功能
	showmessage('not_open_invite', '', array(), array('return' => true));
}
if($_G['uid']) {
   //如果用户已登录
	//用户已登录状态下打开邀请链接,有接受邀请和忽略邀请两个选项,分别对应accept=yes和accept=no
	if($_GET['accept'] == 'yes') {
   
		$cookies = empty($_G['cookie']['invite_auth'])?array():explode(',', $_G['cookie']['invite_auth']);

		if(empty($cookies)) {
   
			showmessage('invite_code_error', '', array(), array('return' => true));
		}
		if(count($cookies) == 3) {
   
			$uid = intval($cookies[0]);
			$_GET['c'] = $cookies[1];
			$appid = intval($cookies[2]);
		} else {
   
			$id = intval($cookies[0]);
			$_GET['c'] = $cookies[1];
		}
		$acceptconfirm = true;

	} elseif($_GET['accept'] == 'no') {
   
		dsetcookie('invite_auth', '');
		showmessage('invite_accept_no', 'home.php');
	}
}

if($id) {
   //如果是普通邀请

	$invite = C::t('common_invite')->fetch($id);
	//检查邀请码是否一致
	if(empty($invite) || $invite['code'] != $_GET['c']) {
   
		showmessage('invite_code_error', '', array(), array('return' => true));
	}
	//邀请码已经使用过了
	if($invite['fuid'] && $invite['fuid'] != $_G['uid']) {
   
		showmessage('invite_code_fuid', '', array(), array('return' => true));
	}
	//邀请码失效检查
	if($invite['endtime'] && $_G['timestamp'] > $invite['endtime']) {
   
		C::t('common_invite')->delete($id);
		showmessage('invite_code_endtime_error', '', array(), array('return' => true));
	}

	$appid = $invite['appid'];
	$uid = $invite['uid'];

	$cookievar = "$id,$invite[code]";

} elseif ($uid) {
   //如果是批量邀请
	$id = 0;
	//检查邀请码
	$invite_code = space_key($uid, $appid);
	if($_GET['c'] != $invite_code) {
   /
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番茄大圣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值