【问题标题】:PHP echo header links from 2 different sessions来自 2 个不同会话的 PHP 回显标头链接
【发布时间】:2017-11-10 13:39:46
【问题描述】:

我刚刚创建了一个管理员登录应用程序,因此当管理员登录时,我还必须更改标题中的链接。

所以我以前在我的标题中有这些链接:

<li>
    <?php
        if(isset($_SESSION['user_logged']) && $_SESSION['user_logged'] == true){
            echo '<a class="l3" href="https://kadokado-ferran10.c9users.io/user/profile">Profile</a>';
        }
    ?>
</li>
<li>
    <?php
        if(isset($_SESSION['user_logged']) && $_SESSION['user_logged'] == true){
            echo '<a class="l4" href="https://kadokado-ferran10.c9users.io/auth/logout">Uitloggen</a>';
        } else {
            echo'<a class="l5" href="https://kadokado-ferran10.c9users.io/auth/register">Registrate</a>';
            echo '</li><li>';
            echo '<a class="l6" href="https://kadokado-ferran10.c9users.io/auth/login">Login</a>';
        }
    ?>
</li>
<li>
    <a class"l7" href="<?= base_url() ?>/Product">
        <button type="button" class="btn btn-default btnca">Cadeau aanbieden</button>
    </a>
</li>

因此,当用户登录时,会显示一个带有配置文件的链接按钮。 现在我想要的是当管理员登录时,必须有一个名为 Admin dashboard INSTEAD 的配置文件按钮。

这是我想要的唯一更改。所有其他链接都应保留在同一位置,例如在用户注销时注册和登录。

我试着这样做,但是当我这样尝试时它不起作用:

<li>
    <?php
        if(isset($_SESSION['user_logged']) && $_SESSION['user_logged'] == true) {
            echo '<a class="l3" href="https://kadokado-ferran10.c9users.io/user/profile">Account</a>';
        }
    ?>
</li>
<li>
    <?php
        if(isset($_SESSION['admin_logged']) && $_SESSION['admin_logged'] == true){
            echo '<a class="l3" href="https://kadokado-ferran10.c9users.io/IndexController">Admin dashboard</a>';
    }?>
</li>
<li>
    <?php
        if(isset($_SESSION['user_logged']) && $_SESSION['user_logged'] == true) {
            echo '<a class="l4" href="https://kadokado-ferran10.c9users.io/auth/logout">Uitloggen</a>';
        } else {
            echo '<a class="l5" href="https://kadokado-ferran10.c9users.io/auth/register">Registreren</a>';
            echo '</li><li>';
            echo '<a class="l6" href="https://kadokado-ferran10.c9users.io/auth/login">Inloggen</a>';
        }
    ?>
</li>
<li>
    <a class"l7" href="<?= base_url() ?>/Product">
        <button type="button"   class="btn btn-default btnca">Cadeau aanbieden</button>
    </a>
</li>

有人有解决办法吗? 当我以管理员身份登录时,我看不到注销按钮,但我看到了注册和登录按钮...

【问题讨论】:

  • 你可以试试!empty()而不是isset()
  • 在哪里?在管理仪表板的行中? :
  • kadokado-ferran10.c9users.io/IndexController">Admindashboard a>'; }?>
  • 像那样?
  • 它不起作用,因为我没有看到仪表板按钮
  • @Learningprogrammingphp44 $_SESSION['admin_logged'] 在所有使用会话的文件中都有价值吗?您发布的内容理论上应该有效。您是否检查了 php 错误报告中可能出现的错误? var_dump($_SESSION['admin_logged']); 生成和查看 HTML 源代码是什么?
  • $_SESSION['admin_logged']);确实有价值,它只是为了查看管理员是否已登录。但是当我添加管理仪表板按钮时会发生什么,我没有在标题的另一侧看到注销按钮,但我看到了注册和登录按钮以管理员身份登录时..
  • 标签: php codeigniter session codeigniter-3


    【解决方案1】:

    在登录期间(在登录脚本处)设置以下$_SESSION

    /**
    * Define user_level:
    * 1 = 'normal user'
    * 10 = 'admin user'
    */
    // For user:
    $_SESSION['user_level'] = 1;
    
    // For admin:
    $_SESSION['user_level'] = 10;
    

    现在是代码:

    <li>
        <?php
        if($_SESSION['user_level'] == 1): ?>
            <a class="l3" href="https://kadokado-ferran10.c9users.io/user/profile">Account</a>
        <?php endif;?>
    </li>
    <li>
        <?php if($_SESSION['user_level'] == 10):?>
            <a class="l3" href="https://kadokado-ferran10.c9users.io/IndexController">Admin dashboard</a>
        <?php endif; ?>
    </li>
    <li>
        <?php if($_SESSION['user_level'] <= 10):?>
            <a class="l4" href="https://kadokado-ferran10.c9users.io/auth/logout">Uitloggen</a>
        <?php else: ?>
            <a class="l5" href="https://kadokado-ferran10.c9users.io/auth/register">Registreren</a>
            </li><li>
            <a class="l6" href="https://kadokado-ferran10.c9users.io/auth/login">Inloggen</a>
        <?php endif ;?>
    </li>
    

    【讨论】:

    • 是的,但这不是我现在遇到的问题
    • 我明白了,第二个。我改变它。
    • 我所拥有的是我创建了一个名为“admin”的新表。对吗?
    • 是的。你有一个数据库,它可能被称为用户。在用户中,您有不同的列。例如:idnameadmin。每个用户的 Admin 应该是 0,对于管理员来说应该是 1。
    • 我不认为你真的理解我的问题,我想要的是如果管理员登录,我希望它回显这个按钮:
    • kadokado-ferran10.c9users.io/IndexController">Admindashboard'; }?>
    • 如果用户已登录我希望它回显另一个名为“个人资料”的按钮
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签