我想以不同的方式为管理员和客户添加额外的导航按钮。如果管理员登录了一个额外的导航按钮,则应该为客户添加一个相同的导航按钮。 我没有收到任何错误,但是 if else 块 (user_type) 没有执行,我也没有得到任何额外的导航按钮。 我的代码有什么问题。

索引.php

<div class="navbar-collapse collapse">
          <div class="menu">
            <ul class="nav nav-tabs" role="tablist">
              <li role="presentation"><a href="index.php" class="active"  >Home</a></li>
              <li role="presentation"><a href="subscribe.php" >Subscribe</a></li>
              <li role="presentation"><a href="signup.php">Sign up</a></li>
              <?php

              if(isset($_SESSION['login_user']))  //check if user is logged in
              {

                if(!empty($_POST['user_type']))
                   {
                       $user_type=$_POST['user_type'];
                       if($user_type==1)                //type 1 is admin
                       {
                echo'<li role="presentation"><a href="customers.php">Customers</a></li>';
                echo'<li role="presentation"><a href="logout.php">Logout</a></li>';
                       }
                      elseif($user_type==2) {             //type 2 is customer
                echo'<li role="presentation"><a href="account.php">My account</a></li>';
                echo'<li role="presentation"><a href="logout.php">Logout</a></li>';
                      }
                  }              
              }

              else{
                    echo'<li role="presentation"><a href="login.php">Login</a></li>';
                }   
              ?>
              <li role="presentation"><a href="contact.php">Contact</a></li>
            </ul>
          </div>
        </div>

注册.php

    <form action="psignup.php"  method="POST" class="register-form" id="register-form">
    <select required type="text" name="user_type" class="dropdown">
                                        <option value="NULL">Select User Type</option>
                                        <option value=1>Admin</option>
                                        <option value=2>Customer</option>
                                    </select>
</form>

#1楼 票数:0

$_POST['user_type']将只存在一次,在用户第一次完成您的注册表后。 这就是 POST 变量的工作方式——它们填充了用户在当前请求中提交的数据; 它们不会在后续请求中持续存在。

所以如果你想在用户登录后为每个页面显示菜单,那么你就不能使用它。 您需要将用户类型值存储在 Session 中,并从那里获取它(就像您已经使用login_user值一样。)

#2楼 票数:0 已采纳

我想在登录后,您验证用户的凭据并创建$_SESSION['login_user']

使用相同的逻辑来验证用户,并根据他/她的用户类型,在$_SESSION['login_user']设置后立即在条件语句中创建$_SESSION['user_type']

这样,您就可以在您网站的每个页面中检查if($_SESSION['user_type'] == 1)

请记住在注销期间清除或销毁您的$_SESSION变量,并在将它们分配到您的会话之前过滤您发布的值(即htmlspecialchars(strip_tags($_POST['user_type'], ENT_QUOTES))请参见此处

  ask by Mahesh nainar translate from so

未解决问题?本站智能推荐:

1回复

尽管用户进行了交互,输入类型单选按钮仍未更改

我有几个测试。 它们处于启用位置或禁用位置。 所以最初我是从数据库中获取值并适当地设置属性。 万事皆安。 但是,即使用户将测试从启用更改为禁用,我也会获得与启用相同的旧值。 即 请帮我 。
1回复

如果用户已登录,请更改导航栏

我要在用户登录后将导航栏中的“登录/注册”按钮更改为“我的帐户”。我有一个问题,因为index.html页面没有显示导航栏。 index.html页面: navigation.php check.php 如果我转到index.html,则不会显示导航栏。 我究竟做错了什么?
2回复

用户登录后如何更改导航栏?

我目前有 2 个不同的导航栏。 一种在顶部带有登录和注册,另一种带有帐户。 我希望导航栏在用户登录后更改为带有帐户的导航栏。我的注册和登录系统已经在运行,因此不必更改(连接到数据库)。 别介意名字,这是一个学校项目。 这些是我的 2 个导航栏: 我目前在页面顶部有这个: 请让我知道是否有更简单的方法
1回复

如何使用PHP和CSS在HTML中为不同类型的用户在一个页面中创建两个不同的菜单

我对 php 和 HTML 很陌生,我需要在用户登录后创建一个页面来为不同类型的用户显示一个菜单。 第一个用户 = 雇主 第二个用户 = 求职者求职者的菜单应至少显示以下选项: 菜单编辑个人资料应用历史搜索工作按类别查看工作按公司查看工作登出雇主菜单应至少显示以下选项: 菜单编辑公司简介发布新职位编
3回复

jQuery:将输入类型从按钮更改为提交

我有一个如下所示的动画搜索表单。 首次单击搜索按钮时,它将切换出文本区域,用户可以在其中键入他们要搜索的内容。 但是,当他们再次单击搜索按钮时,它应提交搜索表单(即输入类型应从按钮更改为提交)。 我已经阅读了关于SO的一些帖子,但是这些帖子是几年前的,我不确定它们是否仍然有用。 不能
1回复

登录后将按钮登录更改为注销或导航栏引导

我尝试使引导按钮位于bootstrap navbar上,但是我发现登录后尝试登录然后输入登录按钮变成注销时很难? 有谁可以帮助我
2回复

如果用户登录,是否可以使用PDO或Smarty来更改导航栏?

我正在使用 Smarty 和 PDO 创建一个网站,这是我的头文件,我不确定如何根据用户是否登录来更改它? 当用户未登录时,这些选项应该出现(星期五、星期六、星期日、注册、登录)但是当他们登录时,我希望“注册”和“登录”更改为“我的帐户”和“登出'。 以下是我目前拥有的代码。 //If us
3回复

如果用户登录,则在引导程序中更改导航栏

我有一个标准菜单,其中包括“登录”和“创建用户”的选项。 我想要的是,当您创建用户或登录整个导航栏菜单进行更改时,例如说“我的用户页面”和“注销”,我该怎么做? 基本上,改变 对此: 最好的方法是什么?