文章

discuz 自定义退出时的跳转地址

需求

如果我们想在discuz退出后跳转到其他页面,比如说另外定制的一个页面,该怎么做呢?

知识

discuz处理退出时的跳转地址的文件是source\class_member.php

具体步骤

假如我们有一个logout.html的文件,需要在discuz退出后跳转到它

打开source\class_member.php,找到on_logout()函数

修改为如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function on_logout() {
	global $_G;

	$ucsynlogout = $this->setting['allowsynlogin'] ? uc_user_synlogout() : '';

	if($_G['gp_formhash'] != $_G['formhash']) {
		header("Location: logout.html");//在这里设置跳转地址
	/*showmessage('logout_succeed', '../logout.html', array('formhash' => FORMHASH, 'ucsynlogout' => $ucsynlogout));干掉showmessge函数*/
	}

	clearcookies();
	$_G['groupid'] = $_G['member']['groupid'] = 7;
	$_G['uid'] = $_G['member']['uid'] = 0;
	$_G['username'] = $_G['member']['username'] = $_G['member']['password'] = '';
	$_G['setting']['styleid'] = $this->setting['styleid'];
	header("Location: logout.html");//在这里设置跳转地址
	/*showmessage('logout_succeed', '../logout.html', array('formhash' => FORMHASH, 'ucsynlogout' => $ucsynlogout));干掉showmessge函数*/
}

这里showmessage函数的作用是显示对话框,告诉用户已经退出了discuz,我们不需要这个对话框,所以把它注释了,有关showmessage函数的具体使用请自行谷歌

本文由作者按照 CC BY 4.0 进行授权

Comments powered by Disqus.