我正在尝试修复我的应用中的权限问题,我在使用不同的帐户类登录时设置了session-> userdata('usrclass')。
我有一个ADMIN用户,其usrclass为ADMIN
,我需要根据它显示一些内容。
但是当我这样做时:
<?= ($this->session->userdata('usrclass') == "ADMIN") ? 'yes' : 'no'; ?>
输出“no”......虽然它应输出“yes”。所以我试着用这段代码读入sessiondata:
<?= echo $this->session->userdata('usrclass') ?>
这会输出单词ADMIN
...这是一种奇怪的行为,我尝试过使用===
,我试图找出其他东西,但却不能。
它可能是什么?
我将附上一些照片:
答案 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')