jk2K's 窝

休息,是为了更好的前行

哈喽, 我是叶萌(@jk2K), 一名来自中国的 PHP / iOS 开发者


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

需求

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

知识

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

具体步骤

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

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

修改为如下代码

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函数的具体使用请自行谷歌

comments powered by Disqus