2

私はphpを初めて使用し(4日前に学習を開始しました)、多くの質問を受けました...

index.phpという名前のログインページがあり、ユーザー名プロセスのログイン/検証後、ユーザーはsomeOtherPage.phpと呼ばれる他のphpページへのリンクを持つchat.phpに移動します...私の質問は、防ぐ方法です「www.nameOfMyWebsite.com/someOtherPage.php/」のようにURLにこれを入力して、ユーザーがログインせずにsomeOtherPage.phpに直接アクセスするのを防ぎます

そして、この質問に答えた後、php についてもう少し質問したいと思います...同じスレッドで(タイトルに関して)少し関係のない質問をすることは有効ですか?

4

3 に答える 3

7

ユーザーがログインしたときにセッションを維持する必要があります。ログインの時点で、ユーザー名またはユーザー ID を使用してセッション変数を設定します。次に、保護されたページで、ページの表示を許可する前に、このセッション変数が存在するかどうかを確認します。

基本的な例:

ログインに成功した場合:

$_SESSION['userId'] = x;

保護されたページのリクエスト時:

if(!isset($_SESSION['userId']))
{
    // not logged in
    header('Location: login.php');
    exit();
}

PHP セッションに関する詳細情報。

于 2012-11-29T08:49:25.920 に答える
1

ほとんどの場合、セッション変数は、やりたいことを達成するために使用されます。セッション自体は、各ページの先頭にある session_start() で開始されます。

ログインページは、ログインが成功した後にセッション変数を設定します。 $_SESSION['userId']=$userId; // ID は何でも。

2 ページ目では、if を使用して、セッション変数が設定されているかどうかを確認します。

if (isset($_SESSION['userId']))
{
     .......//here is your page text
}
else
{
     echo 'Sorry please login first before visiting this page!'; //also a redirect can be made here instead.
}

また、ログアウト ページがある場合は、そこで session_destroy() を使用します (ページの先頭で session_start() も使用した後)。

于 2012-11-29T08:52:57.410 に答える
1

すべてのページの一番上に置く

if(!isset($_SESSION['xxx']))
{
   header('Location:index.php');
}
else
{
   header('Location:home.php');
}
//xxx indicate your session name which you had set after login
于 2012-11-29T08:59:08.963 に答える