Codeigniter session-> userdata()返回相反的....!

时间:2014-07-31 05:39:06

标签: php codeigniter session

我正在尝试修复我的应用中的权限问题,我在使用不同的帐户类登录时设置了session-> userdata('usrclass')。

我有一个ADMIN用户,其usrclass为ADMIN,我需要根据它显示一些内容。

但是当我这样做时:

<?= ($this->session->userdata('usrclass') == "ADMIN") ? 'yes' : 'no'; ?>

输出“no”......虽然它应输出“yes”。所以我试着用这段代码读入sessiondata:

<?= echo $this->session->userdata('usrclass') ?>

这会输出单词ADMIN ...这是一种奇怪的行为,我尝试过使用===,我试图找出其他东西,但却不能。

它可能是什么?

我将附上一些照片:

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

您的会话数据值可能有一些额外的空格,请尝试:

<?php
    $sess_data = $this->session->userdata('usrclass');
    $sess_data = trim($sess_data);
    //and echo
    echo ($sess_data == "ADMIN") ? "si" : "no";
?>

答案 1 :(得分:0)

您可以尝试确保它是从会话中返回的字符串。 ((string) $this->session->userdata('usrclass') == "ADMIN") ? 'yes' : 'no';

也许是一个很长的镜头但是第一个用户数据(&#39; usrclass&#39;)可以擦除该值。尝试删除测试代码。 echo $this->session->userdata('usrclass')