ホームページ  >  記事  >  php教程  >  フルセッションチュートリアル

フルセッションチュートリアル

WBOY
WBOYオリジナル
2016-06-21 09:10:091337ブラウズ

セッション|チュートリアル

1. セッションの概要

セッションとは何ですか? 素人の辞書では会議、会議期間と訳されていますが、最初は理解できませんでした。不適切な比喩を使用すると (不適切ではありますが、意味は同じです)、セッションとは、あなたと Web サイトとの関係です。
セッションはWEBテクノロジーにおいて非常に重要な役割を果たします。 Webページはステートレス接続プログラムであるため、ユーザーの閲覧状況を知ることができません。したがって、ユーザーがこの機能で Web サーバーに再度リクエストを送信するときに確認できるように、セッションを通じてユーザーの関連情報を記録する必要があります。たとえば、一部の Web サイトでは、ユーザーにログインを要求することがよくあります。
しかし、ユーザーがログインしていることをどうやって知ることができるでしょうか? セッションが存在しない場合、ログイン情報は保持されないため、すべてのページでユーザーに
ユーザー名とパスワードを入力するよう求めてみてはどうでしょうか?
もちろん、セッションはユーザー ID 認証に使用されるだけでなく、後で説明する他の側面にも使用される場合があります。
セッションは中国語ではセッション期間として説明されます。セッションは、ユーザーがサイトの URL を入力すると開始され、サイトを離れると終了します。
session は、動的スクリプト言語 Active Server Pages で最初に登場しました。その機能は非常に強力なので、一言で明確に説明することはできません。
PHP がまだバージョン 3.0 だったとき、セッションは永遠の苦痛でした。 PHP には実行速度が速く、柔軟に使用でき、強力な機能があるという利点がありますが、多くの Web サイト開発者はセッションの問題を理由に PHP を放棄しました。少なくとも私の上司はそう考えています。当時、PHP3 でセッションを実装するためのソリューションを提供する PHP の無料関数ライブラリは数多くありましたが、どれも本物ではないと感じられました。
数千円で買った携帯電話に、粗末な俵が付いてくるようなものですが、機能は同じですが、いつも違和感を感じます。 php4 の登場により、PHP はセッションの問題にカムバックするチャンスを与えられました。セッションの実装は (主に効率の問題により) 理想的ではありませんが、最終的には単独で実装され、実際に使用できます。
それでは、セッションを何に使うのですか? 長い間話してきましたが、セッションを使用しないと、紙を販売していると疑われませんか? OK、セッションが何に使用されるかを見てみましょう。Web サイトで作業したことがある人なら誰でも、あるページ上の変数 (この章ではすべてサーバー側の変数を指します。以下同様) は次のページでは使用できないという経験をしたことがあります。フォームや URL 文字列などを使用するなど、いくつかの方法がありますが、フォームが自動的に送信されたとしても、遅延は今日のネットワーク状況では窒息するほどであり、どちらの方法も大幅に異なります。プログラマーの負担が増える。大規模なプロジェクトを開発している場合、これらの追加の負担は無視できません。セッションを使用すると、セッションに登録した変数をグローバル変数として扱うことができます。え、グローバル変数?
すごいですね。このようにして、その用途がわかります。最も重要なものは、ユーザー ID 認証、プログラム ステータスの記録、ページ間のパラメータ転送に使用されます。
その利点について長々と話してきたので、あなたはすでに誘惑に駆られていますが、まだ満足しないでください。欠点もあります。これはファイルに保存される変数です (もちろん効率的ではありませんが、他の変数でも使用できます)。方法はありますが
とても面倒です))、オブジェクトを保存できません。対照的に、ASP のセッションはオブジェクト変数を保存し、メモリ変数を使用してセッション変数を保存できます。しかし、なぜ私たちはまだ php を選ぶのでしょう、笑、
どうしてですか、この章はこの本の最初から読んでいただければ理解できると思います、それでも理解できない場合は、もう一度最初から始めてください。あなたも PHP エキスパートになることを保証します^_^。
セッションはどのように実装されますか?はは、とても奥深いと思いますが、その秘密をお話しましょう。変数を保存するだけであれば、これは非常に簡単であることが理解できるでしょう
しかし、前に述べたように、http プロトコルは、変数が誰に属しているのかをどのようにして知るのでしょうか?セッション実装では Cookie を使用して実装されます。 Cookie
はクライアント、つまりユーザーのマシン上に存在します。これにはユーザーのセッション ID (セッション番号) が保存され、ユーザーのブラウザがサーバーにリクエストを送信すると、セッション ID も
サーバーに送信されます。あなたは誰なのか、変数を識別できます。このようにして、セッションが時々失敗する理由を理解するのは難しくありません。信じられない場合は、次のことを試してみてください:
IE の「ツール」メニューに「インターネット オプション」メニューがあり、それを開いた後、「セキュリティ」->「カスタム レベル」を選択し、「許可」を変更します。セキュリティ設定で「Everyone」を設定し、「セッション Cookie」を無効にして、
セッションが使用できるかどうかを確認してください。これで理解できました。ただし、php4 は Linux/UNIX プラットフォームで Cookie のステータスを自動的にチェックし、Cookie が利用できない場合には、セッション ID
が URL に自動的に付加されて渡されます。これがセッションの点で ASP よりも優れている唯一の点です。

2. php3 と 4 でのセッションの実装

php3 にはセッションのようなものはありませんが、それが必要です。心配しないでください。これを行ってくれる人はたくさんいます。最も有名なのは phplib です。海外にも行ける
中国のほとんどの PHP サイトからダウンロードすることもできます。最初に行う必要があるのは、phplib と php3 を組み合わせて機能させることです。この機能を実現するには、まず phplib をインストールする必要があります。
フォローしてください、とても簡単です (次のメソッドは win2000+php3.0.16+apache1.3.12+phplib7.2c+mysql3.23.21 for win32 に渡されます)
phplib の最も基本的な機能には、ユーザー認証、セッション管理、権限、データベースの抽象化。
phplibを使用してセッション機能を実装するには? 1. まず、phplibを解凍します。このディレクトリをApacheのインストールディレクトリにコピーします。以下は作者のマシンを例にします:
私のapacheはd:apacheディレクトリにインストールされています。私は上記の「php」ディレクトリをd:apacheにコピーし、phplibの下のpagesディレクトリ内のファイルとディレクトリを
にコピーしました。 d:apachehtdocs、ディレクトリ自体を含めないように注意してください。
phplib クラス ライブラリは、システムに応じて初期化する必要があります。これには、いくつかの基本的なパラメーターが含まれており、マシンの実際の状況に応じて変更できます。
d:apachephpprepend.php3 ファイル内のプログラムを次のように変更します:

if (!isset($_PHPLIB) または !is_array($_PHPLIB)) {
$_PHPLIB["libdir"] = "d:/apache / php/"; //ここをphplib配下のphpディレクトリを置いたパスに変更します
}

次に、d:apachephplocal.incファイルを次のように変更します:

class DB_Example extends DB_Sql {
var $Host = "localhost" ;/ /mysql データベースが配置されているホスト名
var $Database = "test";//データベース名
var $User = "root";//データベースのユーザー名
var $Password = "";//データベースユーザーパスワード
}

最後のステップは、解凍された phplib ディレクトリのスタッフディレクトリにある create_database.mysql ファイルを実行して、初期テーブルを生成することです。 phplib がどのように機能するかを説明しましょう。phplib を使用するすべてのページは、まず phplib の実行に必要なクラス ライブラリ ファイルを見つける必要があります。phplib 配布パッケージには、php3.ini に auto_prepend
変数が含まれています。 auto_prepend を "d:/apache/php/prepend.php3" (引用符付き) と指定すると、各ページに phplib クラス ライブラリが自動的にインクルードされます。また、phplib クラス ライブラリが配置されているディレクトリを include 変数に追加することもできます。もちろん、これらのファイルは見つけることができますが、phplib の絶対パスを指定するのが最も簡単な方法です。これは良い考えではありません。移植性が低すぎます。
2 番目のステップでは、phplib を使用するすべてのページで、最初に初期化のために page_open 関数を呼び出す必要があります。これにより、現在または将来的に状態を保存する必要があることが phplib に伝えられます。典型的な
page_open の例は次のとおりです:





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。