0

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

4

2 回答 2

4

请不要使用普通的 cookie。会议是要走的路。或者,如果不能使用会话并且必须使用 cookie,请先对 cookie 进行签名,以便能够验证您的应用程序确实是设置它的应用程序。


<?php
session_start();

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

... whatever logged in users should see ..


于 2013-01-20T16:19:21.357 回答
-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>
于 2013-01-20T16:01:43.623 回答