元のセッションを使用する

WBOY
リリース: 2016-06-21 09:14:29
オリジナル
1022 人が閲覧しました

待望の PHP 4.0 機能はセッション サポートです。対照的に、PHP 3.0 ユーザーはサードパーティのライブラリを使用する必要があるか、この機能をまったく実装できません。セッションサポートの欠如は、PHP が最も批判されている点です。ただし、セッション サポートは初期のベータ リリース以来 PHP 4.0 の一部となっているため、この問題は解決されました。



セッションを使用すると、ユーザーが Web サイトにアクセスしている間、複数の Cookie を設定したり、非表示のフォーム フィールドを使用したり、頻繁に接続するデータベースに情報を保存したりすることなく、ユーザー固有の変数を維持できます。

ページ上でセッションを開始すると、PHP エンジンにセッションを開始するか (まだ開始されていない場合)、現在のセッションを継続するよう指示します。

session_start();

セッションを開始すると、認証メッセージがCookie 文字列 (940f8b05a40d5119c030c9c7745aead9 など) を介してユーザーにアクセスすると、サーバー側で同じ名前の対応する一時ファイルが作成されます (sess_940f8b05a40d5119c030c9c7745aead9 など)。このファイルには、登録されたセッション変数とその値が含まれています。

セッションアクションを表示する最も一般的な例はアクセスカウンターです:

PHPモジュールを起動し、PHPコードがファイルの最初の行であることを絶対に確認してください(空白やHTML出力などがない)。その理由は、セッション関数がファイル ヘッダーを送信するときに、session_start() 関数を呼び出す前に空の出力または HTML 出力が送信されると、システムでエラーが発生するためです。


//ユーザーのセッションが存在しない場合は、新しいセッションを開始します

session_start();

次に、count変数を登録します。

session_register('count');

変数を登録すると、セッションが存在する限り count という名前の変数も存在することが PHP に通知されます。現在、この変数には値が割り当てられていません。ただし、これに 1 を追加すると、値を 1 に割り当てることができます:

$count++;
上記の点をまとめると、次の作業が完了します: セッションを開始しました (以前のセッションがなかった場合)。セッション ID を割り当て (セッション ID が存在しない場合)、count という名前の変数を登録し、$count に 1 を追加して、これがユーザーのページへの最初の訪問であることを示します:



ユーザーが現在訪問していることを示すにはsession ページ数については、$count の値を出力するだけです:

echo "

You've been here $counttimes.

";

アクセス カウンター コード全体は次のとおりです。次のように:


session_start();

session_register('count');

$count++;

echo "

$count 回ここに来ています。

";

?>

if 上記のスクリプトをリロードすると、カウント値が増加することがわかります。これは本当にエキサイティングです。

同時に、配列をセッションに登録できます。 $faves という名前の配列が既にあると仮定します:

$faves = array ('chocolate','coffee','beer','linux');

他の単一変数と同様に配列を登録できます:

session_register ('faves');

配列の適用は、$faves などの他の個々の変数の適用と同じです。ユーザーが Web サイトの 1 ページにお気に入りをライブで表示したい場合は、ユーザーのお気に入りを $faves というセッション変数に登録し、これらの値を別のページに出力できます:


session_start() ;

echo "私のユーザーの好み:

    ";

    while (list(,$v) = each ($faves)) {

    echo "
  • $v"; echo "
";

?>

このようにして、ユーザーの好みを示す美しく簡潔なリストを取得できます。

セッション変数の値はクエリ文字列で上書きできません。つまり、http:///www.yourdomain.com/yourscript.php?count=56 と入力して、登録されたセッション変数 $count に新しい値を割り当てることはできません。 。これはセキュリティにとって重要です。サーバー側のスクリプトを介してのみ、(未登録の) セッション変数を変更または削除できます。

セッション変数を完全に削除したい場合は、システムから変数の登録を解除する必要があります:

session_unregister('count');

ログアウトボタンを押すなど、セッションを完全に削除したい場合は、次のようにします。スクリプトは比較的単純です:

session_destroy();

セッションを使用して変数値を保存すると、データベース接続の負荷が軽減され、最大 50 個の Cookie がユーザーに送信される理由を説明するための悪夢のような複雑なコードや広範なプライバシー ステートメントの作成が回避されます。訪問中に。しかし、今必要なのは 1 つの Cookie と 1 つの変数だけです - まるで全世界を反映する一滴の水のように - これほど簡単なことはありません。





関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート