0

私は学校でプロジェクトを行っています。セッションなしで人々がサイトに入るのを防ぐ簡単な方法を知る必要があります。すべてのページにコードを貼り付けるのに時間を費やしたとは思えないページがたくさんあります。また、php のおかげですべてのページにメニュー バーが含まれているので、セッションなしでユーザーをブロックするには、どのような種類のコードをメニューに配置する必要があるのか​​ 疑問に思っていました。残りのコンテンツ コードは、非表示にしたいページにあります。URL を入力してログインすると、ログインしているユーザー向けの非表示のページをユーザーが表示できるようになると思います。

4

2 に答える 2

4

プレーン Cookie は使用しないでください。セッションは行く方法です。または、セッションを使用できず、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 に答える