phpcms前台退出登录的时候提示信息'退出成功0'

问题背景:

phpcms前台退出登录的时候,提示了一个退出成功0

让我很困惑为啥有个0呢?

 

问题分析:

进入

./phpcms/modules/member/index.php

找到logout方法,代码如下:

 

public function logout() {
        $setting = pc_base::load_config('system');
        //snda退出
        if($setting['snda_enable'] && param::get_cookie('_from')=='snda') {
            param::set_cookie('_from', '');
            $forward = isset($_GET['forward']) && trim($_GET['forward']) ? urlencode($_GET['forward']) : '';
            $logouturl = 'https://cas.sdo.com/cas/logout?url='.urlencode(APP_PATH.'index.php?m=member&c=index&a=logout&forward='.$forward);
            header('Location: '.$logouturl);
        } else {
            $synlogoutstr = '';    //同步退出js代码
            if(pc_base::load_config('system', 'phpsso')) {
                $this->_init_phpsso();
                $synlogoutstr = $this->client->ps_member_synlogout();            
            }
            
            param::set_cookie('auth', '');
            param::set_cookie('_userid', '');
            param::set_cookie('_username', '');
            param::set_cookie('_groupid', '');
            param::set_cookie('_nickname', '');
            param::set_cookie('cookietime', '');
            $forward = isset($_GET['forward']) && trim($_GET['forward']) ? $_GET['forward'] : 'index.php?m=member&c=index&a=login';
            showmessage(L('logout_success').$synlogoutstr, $forward);//退出成功0
        }
    }

 

问题解决:

注意最后一行的showmessage,里面第一个参数是

L('logout_success').$synlogoutstr

代表消息内容,查了一下

./languages/zh-cn/member.lang.php

logout_success确实是退出成功四个字,但这后面拼了一个$synlogoutstr,经检验者确实是那个0,如果不想让他在退出成功的时候显示,把这个字符串去掉就可以了。

上面代码中显示的该字符串是同步退出js用的,所以应该是一个状态码,可能对开发者比较有用吧~mark一下就好

posted @ 2014-10-31 09:53  savokiss  阅读(1743)  评论(0编辑  收藏  举报