0

良い一日、

ユーザーが「index.html」からフォームを送信すると、「home.php」サイトにデータを送信する「index.html」というユーザーがログインする Web ページを作成しています。「home.php」内にいるので、投稿された変数を取得し、それらをデータベースと照合してユーザーを認証できます。「home.php」ファイルにアクセスしたら、ユーザーに「home.php」サイトに GET リクエストを発行して別のデータを表示してもらいたいと思います。それを行い、認証を維持する方法はありますか?

現在、POST 変数が未定義であるという通知を受け取りました。(もちろん投稿はしていないので)

Notice: Undefined index: pass in C:\xampp\htdocs\home.php on line 7

ありがとう、マット

4

4 に答える 4

2

フォームの送信とアカウントの検証である最初の認証チェックを実行したら、何らかの形式のセッション トークンをユーザーに割り当てる必要があります。これは、後続のリクエストの簡単な検証に使用する本物であることを検証できるトークンです。このトークンはいくつかの方法で作成できます。

  1. 承認されたセッション トークンとその有効期限を追跡するための単純なテーブルを作成します。これにより、作成したセッションのみが許可され、単一のアカウントに関連付けられ、有効期限が保証されます。
  2. 暗号化されたトークン形式を作成して、セッション トークンが実際には暗号化されたデータ コンテナーになり、秘密の回転キーを使用してサーバー側でのみ読み取ることができます。トークンには、ユーザーと有効期限に関する情報が含まれているため、サーバー側のテーブルが不要になります。

各トークンの基本情報に加えて、最初の認証要求の UserAgent と IPAddress への参照を含めると、セッション ハイジャックが発生していないことを確認できます。

トークンを作成したら、それをクロス リクエストの場所に保存します。これは、セッション変数または Cookie 変数のいずれかです。これは主に優先事項ですが、いずれにしても、XSS (クロス サイト スクリプティング) を防ぐために、JS リクエストではなく HTTP リクエストからのみアクセスできるようにする必要があります。セッションと Cookie に関する次の記事をご覧ください。

サイトのどこからでも使用できるトークンを取得したので、各ページの認証ハンドラーを作成して、このトークンをチェックし、有効であることを確認します。本物であることを確認したら、それを使用して、ページを表示しているユーザーと、必要な権限を把握できます。

于 2012-06-27T15:54:27.043 に答える
2

セッションを使用したいようです。


参照: http://www.w3schools.com/php/php_sessions.asp

参照: http://www.tizag.com/phpT/phpsessions.php

于 2012-06-27T15:37:29.043 に答える
1

たとえば、次のことができます。

echo "<form method='post' action='home.php?parameter1=".$variable1."'>";

次に、POST 変数と GET 変数の両方があります。

編集:しかし、私はあなたを誤解していると思います.SESSION変数を使用して、ページを介して認証を永続化します.

于 2012-06-27T15:39:31.160 に答える
1

これを行う

$pass = isset($_POST['pass']) ? $_POST['pass'] : null;
于 2012-06-27T15:37:21.600 に答える