ホームページ > バックエンド開発 > PHPチュートリアル > セッション管理と認証に PHPLIB を使用する_PHP チュートリアル

セッション管理と認証に PHPLIB を使用する_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:09:03
オリジナル
788 人が閲覧しました

PHPLIB はデータベース クラスなど、他の多くのことも実行できます。この記事は PHPLIB について簡単に紹介するものです。言及されていないクラスや関数が多数あります。 http://phplib.netuse.de にアクセスすると、その他のヘルプドキュメントを入手できます

テスト環境:標準環境

まず最初に、オンライン ショッピングなど、顧客の現在のステータスを保存する必要があるプログラムを Web ページを使用して設計するのは非常に不便であるという事実を説明する必要があります。プログラマは、常に渡されるステータス パラメータに直面する必要があります。さまざまなホームページ間で。顧客の身元認証、選択、現在のステータスなどは、Web ホームページには保存されません。これらのパラメータはユーザー自身で慎重に処理する必要があり、これは非常に危険です。特に変数にユーザー登録情報が含まれており、簡単に盗聴できる場合は、http://url?var1=x1&var2=x2 を使用してパラメータを転送します。

PHPLIB は、この問題を解決する PHP3 の拡張機能であり、プログラマーが対話型 Web サイトを簡単に構築できるように、PHPLIB の最も基本的な機能には、ユーザー認証、セッション管理、抽象化データベースが含まれます。

PHPLIB をインストールする前に、サーバーに php3 をインストールする必要があります。PHPLIB は Cgi モードまたは Apache アドオン モジュール モードで実行できます。 PHP3 のバージョンは 3.0.5 以降である必要があります。そうでない場合は、コンパイル時に --enable-foce-cgi-redirect パラメータを使用することでサポートされます。 PHP3 の設定では、track_vars を有効に設定する必要があります。同時に、PHPLIB は MySQL、Oracle、ODBC、PostgreSQL、および Sybase をサポートする必要があります。

最初のステップでは、システムに応じて PHPLIB クラス ライブラリを初期化する必要があります。このファイルには、いくつかの基本パラメータが含まれています。このファイルは、自分のマシンの条件に応じて変更できます。

PHPLIB がどのように機能するかを説明しましょう。PHPLIB を使用するすべてのページは、まず PHPLIB を実行するために必要なクラス ライブラリ ファイルを見つける必要があります。これを指定した後、php3.ini に auto_prepend 変数を設定します。 auto_prepend を prepend.php3 として指定すると、各ページに PHPLIB クラス ライブラリが自動的にインクルードされます。これらのファイルが見つかるように、PHPLIB クラス ライブラリが配置されているディレクトリをインクルード変数に追加することもできます。絶対パス、これは良い考えではありません。

2 番目のステップでは、PHPLIB を使用するすべてのページで、関数 page_open を使用してページを初期化する必要があります。これにより、現在または将来的に状態を保存する必要があることが PHPLIB に通知されます。典型的な page_open の例には、認証、セッション、権限が含まれています:


page_open(array( "sess" => "Cms_Session", "auth" => "Cms_Auth", "perm" => "Cms_Perm"));

?>

配列変数 (sess、auth、perm) は、一部の状態保存オブジェクトを初期化するために使用されます。 注: これらの組み込み名は、local.ini で定義する必要があります。 page_open 関数は、ページ コンテンツがブラウザに出力される前に Called になっている必要があります。 (今後認証を使用しない場合は、sess を初期化する必要はありません。) php3 スクリプトは、関連するステータス データをデータベースに書き戻す page_close() で終了する必要があります。ハハハッハッハ。 。 。

PHPLIB は Cookie を使用して状態情報を保存するため、ページ コンテンツがブラウザに出力される前に、page_open() 関数を呼び出す必要があります。「Oops - SetCookie が呼び出されました。ヘッダーが送信された後」というメッセージは、page_open() の前にブラウザに出力された内容を示します。空行は見つけるのが非常に難しいため、特に注意する必要があります。一般的なエラーは、< ? と ?> の間に出力されます。 ; タグ 空白行が見つかった場合は、local.inc ファイルと prepend.php3 ファイルに空白行が含まれているかどうかを確認する必要があります。これも非常に間違いやすい場所です。

PHP は、基本認証方法よりも複雑なアーキテクチャを使用しているため、より優れたセキュリティ保証が提供されます。

たとえば、アクセスを制限したいページの場合、最初に page_open を使用して "auth" => "auth_class" を呼び出し、認証ステータス オブジェクトを初期化した後、ステータスが保存され、その後、顧客が他のページにアクセスしたときにステータスが保存されます。 、認証システムはまずユーザーの身元が認証されたかどうかを検出します。

ユーザーが初めてページにアクセスし、そのユーザーの ID が認証されていない場合、PHPLIB は登録ウィンドウ (WINDOWS のポップアップ ウィンドウではありません) を呼び出します。このとき、登録ウィンドウのスタイルは自分で設計できます。ユーザーが入力します。 ユーザー名とパスワードを入力して送信ボタンを押すと、本人認証プロセスが開始されます。少し複雑です。
ユーザーのブラウザが JavaScript と互換性がない場合、認証作業はユーザー名とパスワードがサーバーに送信され、そこに保存されているデータと比較されるようなものです。ユーザーのブラウザが JavaScript と互換性がある場合、PHPLIB は最初に、ユーザーがページを送信するときに、暗号化に使用されるシード文字列 (「チャレンジ」) を挿入します。チャレンジ文字列は md5 暗号化を使用して暗号化され、暗号化された文字列が生成され、暗号化された文字列とユーザー名がサーバーに送信されます。サーバーはユーザー名と暗号化された文字列を受信すると、データベース内のユーザー名とパスワード、および取得したシードに基づいて md5 操作を実行し、生成された文字列とユーザーが送信した文字列を比較し、それらが一致する場合、ユーザーはID が正しい場合、ユーザーはその後のアクセスを許可されます。この方法の利点は、ユーザーがパスワードを送信する必要がないため、認証がより安全になることです。

セッション管理

実際、セッション管理は ID 認証に非常に近いものであり、ユーザーのブラウザーが Cookie をサポートしている場合、ユーザーのセッションが開始されます。この ID はランダムに作成されます。 PHP3 によって生成され、ランダム シードが使用されました

文字列は md5 で暗号化されており、この Cookie はユーザーのハード ドライブに書き込まれないため、ここでの Cookie はセッション Cookie と呼ばれます。セッションが完了すると、Cookie も完了します。ユーザーのブラウザが Cookie をサポートしていない場合、セッション ID は URL チェーンに組み込まれ、暗号化されるため、盗むことはできません。セッション ID には、ユーザーが認証されているか、認証の有効期限、ユーザーの権限、および当社の便宜のために必要となるその他の情報などのユーザー関連情報が保存されます。

セッションは実際にはユーザー セッションのプロセスです。実際、セッション管理はユーザー登録を追跡するために使用されるだけでなく、ユーザーがその後アクセスするページに保存したい情報を保存するためにも使用できます。もちろん、それらのページが PHPLIB を使用している場合には便利です。方法は非常に簡単で、変数を登録した後は、セッションが終了するまで後続のページでその変数を使用できます。方法:


register( "変数名");
ここでの variable_name は変数値ではなく、変数名であることに注意してください。最初に変数名を指定してから値を割り当てることができます。特定のページで変数の値を変更でき、後続のページで変数にアクセスすると、変更された値が取得されます。変数の型は多様で、文字列、数値、配列、さらにはオブジェクトの場合もあります。例で説明すると:


$sess->register( "first");

if (check($firstname)) {

$first = $firstname;

http://www.bkjia.com/PHPjc/629777.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/629777.html技術記事 PHPLIB は、データベース クラスなど、他の多くのことも実行できます。この記事は PHPLIB について簡単に紹介するものです。言及されていないクラスや関数が多数あります。 http://phplib.netuse.de...
にアクセスしてください。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート