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一下就好