-2

index.phpという名前のphpでログインページを作成しました。ユーザーがログインすると、mypage.php にリダイレクトされます。ログインは正常に機能します。しかし、ログインせずに mypage.php の URL を入力すると、mypage.php も開きます。ユーザーが mypage.php を表示するにはログインする必要があり、ブラウザで URL を変更するとエラー メッセージが表示されます。何をすべきか?

1.localhost/index.php 2.localhost/mypage.php

4

3 に答える 3

3

index.php で、ユーザーが正常にログインしたら、セッションを設定します。$_SESSION['login'] = true;リダイレクト前のように。無効なログインの場合$_SESSION['login'] = false;は、ページの上部にある [セッションを開始することを忘れないでください] を使用します。session_start();

mypage.php で、そのセッションが設定されているかどうかを確認します。設定されていない場合はエラーをスローし、設定されていない場合はページを表示します。

session_start();
if(isset($_SESSION['login']) && $_SESSION['login'] == true) {
   echo 'You are welcome'; 
} else {
   echo 'redirecting to login page';
   header('Location: index.php');
   exit;
}
于 2013-01-29T14:04:38.070 に答える
2

「ログイン中」の状態をどのように保存していますか?

index.php の成功したログイン プロセスによって設定された変数を mypage.php でチェックする必要があります。

ここにコードを貼り付けていただけますか?

于 2013-01-29T14:03:10.510 に答える
1

ログインが正しく機能するためには、「安全な」ページ(本当に安全なものはないため、この用語を比較的使用します)には、何らかの検証条件が必要です。つまり、ユーザーがログインしているかどうかを判断する方法が必要です。

PHPでこれを行う簡単な方法はsession、ユーザーの資格情報を処理するときに変数を設定することです。例えば:

ユーザーが正常にログインしたら、次のようなセッション変数を設定します。

$_SESSION['isLoggedIn'] = true;

次に、mypage.phpで、変数が設定されているかどうかを確認します。

if(!isset($_SESSION['isLoggedIn']) || $_SESSION['isLoggedIn'] != true) {
    header("Location: index.php");
    exit;
}

session_start();また、すべてのファイルの最初の行として持っているセッションを使用している場合は必須であることに注意してください。これにより$_SESSION、別のページで設定された変数を現在のページで読み取ることができます。

お役に立てれば。

于 2013-01-29T14:08:11.823 に答える