如何阻止人们访问需要登录的隐藏页面?

时间:2013-01-20 15:50:03

标签: php html html5 session

我正在学校做一个项目,我需要知道一种简单的方法来阻止人们在没有会话的情况下进入网站。我有很多页面我不相信我花时间在每个页面上粘贴代码。此外,由于php,我有每个页面都包含的菜单栏,所以我想知道我必须在菜单中放入扫描类型的代码来阻止用户没有会话。其余内容代码位于我要隐藏的页面上。我相信你可以通过输入网址登录并允许用户查看登录用户的隐藏页面。

2 个答案:

答案 0 :(得分:4)

请不要使用普通的cookie。会议是要走的路。或者如果不能使用会话并且必须使用cookie,请首先签署cookie以验证您的应用程序是否真的是设置它的。


<?php
session_start();

if (!isset($_SESSION['authenticated'])) {
  header('Location: login.php');
  exit; 
}

... whatever logged in users should see ..


答案 1 :(得分:-1)

如果您不想使用会话,请使用cookie。

<?php
/*Just add this piece of PHP code to top of any page you 
   don't want not-logged in users to see */
if (!isset($_COOKIE['logged']))
    header("Location: login.php");  //It redirects the user to your login page

?>

<html>
   <body>
      ...
   </body>
</html>

登录页面可能是这样的:

<?php
    if (isset($_COOKIE['logged']))
        header("home.php");

    if ($_POST['submit']) {
        //get username and password
        $uname = $_POST['uname'];
        $pass = $_POST['password'];

        if ($uname=="correct" && $pass=="correct"){ //EDIT
            setcookie('logged','1');
                    header("Location: home.php"); //Redirect to home page
        }
        else echo "Wrong combinaton!";
    }

?>

<html>
    <body>
        <form action="login.php" method="post">
            <label>Username</label><input type="text" name="uname" /><br />
            <label>Password</label><input type="password" name="pass" /><br />
            <input type="submit" name="submit" value="Login" />
        </form>
    </body>
</html>