【问题标题】:Display a link only if user is an admin仅当用户是管理员时才显示链接
【发布时间】:2016-08-12 13:18:02
【问题描述】:

我对 PHP 非常陌生,我正在尝试仅为管理员制作注册表单(不需要其他用户)。我只想向管理员显示其中一个菜单导航(“添加照片”)。

登录.php:

<?php
    include_once 'header.php';

    $username = "Efren";
    $password = "111";

    if (($_POST['txt_uname_email'] == $username)&& ($_POST['txt_password'] == $password)) {
        session_start();
        $_SESSION['admin_is_logged'] = true;
        echo '<script type="text/javascript"> window.open("homepage.php","_self");</script>';            
    }

这是我试图仅向管理员显示的标题部分:

<?php 
    if (isset($_SESSION['admin_is_logged']) && $_SESSION['admin_is_logged'] == true){
        echo '<li><a href="/addnew.php">add photo</a></li>';
    }
?>
</ul>

现在“添加照片”对管理员和其他访问者都是隐藏的。

【问题讨论】:

  • print_r($_POST) 在条件之前检查这个
  • 您的表单是否正确发布了 POST 数据“txt_uname_email”和“txt_password”?条件是否解析为真?顺便说一句,Efren 不是电子邮件 (txt_uname_email)
  • 这些代码sn-ps是否在不同的页面上?如果是这样,您需要在要使用会话的每个页面上使用 session_start() 开始会话。

标签: php login


【解决方案1】:

您需要在要访问$_SESSION 变量的每个页面上启动会话。我看到你的session_start 在 if 语句中。只需将它设置在每个文件的顶部(您需要会话的地方),它应该可以工作。

【讨论】:

    【解决方案2】:

    session_start();
    

    &lt;?php之后开始的文件

    【讨论】:

    • 谢谢,它确实有帮助!))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 2012-08-20
    • 1970-01-01
    • 2017-03-19
    • 2021-10-28
    • 2019-05-14
    • 1970-01-01
    相关资源
    最近更新 更多