【问题标题】:Check page permission by session?按会话检查页面权限?
【发布时间】:2016-11-02 04:50:30
【问题描述】:

我在每个页面都包含header.php 以获取标题徽标并检查SESSION 的页面权限!

  • 所以如果你请求 ma​​in.php 没有登录(会话空状态),它将显示登录页面并在header.php 中退出,因为不显示当前页面内容。
  • 它的 header.php 适用于除login.php 之外的每个页面。因为登录页面不显示登录表单

所以我想显示登录表单,如何在header.php 中签入?对不起我的英语不好:(

login.php

<?php
session_start();
include("header.php");
if($_POST){
 //set session logged in
}
?>
<div class="login-box ">
            <h3> Log In </h3>
            <form method="POST">
                <input type="text" name="user"  placeholder="Type User Name"><br>
                <input type="password" name="pass"  placeholder="Type Password"><br>
                <input type="submit" name="submit" value="Login" class="button">
            </form>
            <span id="signup_text">You are not still a member.Click <a href="signup.php">Sign Up</a></span>
</div>

header.php

<?php
session_start();
?>
<div id="header" class="container">
        <div id="logo">
            <h1>Online Quiz Management</h1>
        </div> 
</div>
<?php        
 if (isset($_SESSION['login'])) {
            echo "<div id='menu'><ul><li><a href=\"sublist.php\">HOme</a></li><li><a href=\"signout.php\">Signout</a></li></ul></div>";
           }
        else {
             echo "<div class=head1> Your are not logged in<br> Please <a href=login.php>Login</a><div>";
             exit;
        }
            ?>
        </div>
    </div>                  
?>    

ma​​in.php

<?php
session_start();
include("header.php");
?>
//show main code  if logged in 

【问题讨论】:

  • 更好的解决方案可能是在用户未登录时将用户重定向到登录页面(例如login.php)。然后您将在login.php 中创建、显示和检查表单。

标签: php html security session


【解决方案1】:

只需检查当前页面是否为 login.php,如果是则不要运行您的块

  else if(!basename($_SERVER['PHP_SELF']) == "login.php") {

             echo "<div class=head1> Your are not logged in<br> Please <a href=login.php>Login</a><div>";
             exit;
        }

【讨论】:

    【解决方案2】:

    我认为你不需要在 login.php 中包含 header.php,因为它是检查会话,而 login.php 是会话启动器...

    毕竟,尝试将其添加到 header.php :

    session_start();
    if(!isset($_SESSION['login'])){
    echo  '<script language="javascript">';
    echo  'alert("Please Login")';
    echo  '</script>';
    echo("<script>location.href = 'login.php';</script>");//direct the user to login.php if they aren't logged in
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-28
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-17
      • 2011-12-11
      • 2020-01-04
      相关资源
      最近更新 更多