【问题标题】:Codeigniter session->userdata() returns the opposite....!Codeigniter session->userdata() 返回相反的结果......!
【发布时间】:2014-07-31 05:39:05
【问题描述】:

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

我有一个 ADMIN 用户,他的 usrclass 为 ADMIN,我需要显示一些基于此的内容。

但是当我这样做时:

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

它输出“否”......而它应该输出“是”。所以我试着用这段代码读入会话数据:

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

这会输出单词ADMIN...这是一个奇怪的行为,我尝试使用===,我尝试找出其他内容但无法解决。

会是什么?

我将附上一些照片:

【问题讨论】:

  • 可以转储$this-&gt;session-&gt;userdata('usrclass')吗?
  • 问题是你在哪里设置这个变量usrclass。尝试在那里打印值。

标签: php codeigniter session


【解决方案1】:

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

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

【讨论】:

  • 其实我不知道谁对你投了反对票,但这就是原因!谢谢,我想不通!
【解决方案2】:

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

也许是一个很长的镜头,但第一个 userdata('usrclass') 是否会擦除该值。尝试删除测试代码。 echo $this-&gt;session-&gt;userdata('usrclass')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 2020-12-06
    • 2022-07-06
    相关资源
    最近更新 更多