ホームページ > バックエンド開発 > PHPチュートリアル > セッションが Cookie_PHP に依存する必要があるかどうかの詳細な分析チュートリアル

セッションが Cookie_PHP に依存する必要があるかどうかの詳細な分析チュートリアル

WBOY
リリース: 2016-07-21 15:00:09
オリジナル
1003 人が閲覧しました

PHP のセッションはデフォルトでクライアントの Cookie (通常の意味での Cookie と区別するために、セッション Cookie と呼びます。通常の意味での Cookie は Cookie です) を使用してセッション ID を保存できますが、PHP のセッションはセッション Cookie のみが使用されますか?

もちろんそうではありません。そうでない場合、わざわざセッションを作成する必要はありません。セッションの大きな利点の 1 つは、クライアントの Cookie が無効になっていると、セッション ID が自動的に URL に付加されることです。セッション ID を通じて記憶できるようにします

確認のために以下の2つのファイルを書きます

コードをコピーします コードは次のとおりです:
//ファイル名はtest1です。 .php
session_start ();
$url="test2.php"
echo "goto test2.php";




コードをコピーします
コードは次のとおりです:session_start ();
if (session_is_registered("url")) {
echo "おめでとうございます。"
$url="test1.php"
echo " goto test1.php ";
} else
echo "failed.";
?>


次に、ブラウザに「http://localhost/test1.php」と入力し、マウスをリンクに移動しますステータス バーのアドレスを、単に「http://localhost/test2.php」ではなく、「http://localhost/test2.php?phpsessid=6e3610749f7ded3784bc4a4dd10f879b」という形式で確認してください。

HTML のソース ファイルを表示することもできます。ソース ファイルは次の形式です:

goto test2.php PHP の功績はブラウザとは全く関係ありません。つまり、一部の人々が考えている IE だけでなく、どのブラウザを使用してもセッションは有効です。 ただし、ハイパーリンクステートメントは echo ステートメントによって出力されます。ハイパーリンクが PHP タグ <> に含まれていない場合はどうなるでしょうか。test1.php を少し修正してみましょう。

コードをコピーします

コードは次のとおりです:

session_register("url"); $url="test2.php"; href=$url>goto test2.php";?> (html フォーム)goto test2.php

ブラウザに「http://localhost/test1.php」と入力し、マウスを 2 つのリンクにそれぞれ移動して違いがあるかどうかを確認します。2 つのリンクがまったく同じであることがわかり、セッションが開始されます。 php タグに含まれていないリンクは無効になることを心配しないでください。php はそれほど愚かではありません。 ただし、これを使用する場合は、このファイルに HTML コードしかない場合でも、最初に session_start() 関数を使用して PHP にセッションの使用を開始するように指示する必要があることに注意してください。 >


<本文>
…………

この利点は linux/unix でのみ実現できると言っていたのを覚えていますが、私は win2000p+apache1.3.17+php4.0.4pl1 を使用しており、php は Apache モジュールですが、逆に Linux に切り替えても動作します。実際にテストしてみたところ、機能しませんでした。PHP のデフォルトに従ってコンパイルする場合、この機能が有効かどうかを制御するのはコンパイル時のオプションです。私の構成は apache1.3.17+php4.0.4pl1 で、php は Apache モジュール モードであり、Linux で再コンパイルした後、テストは netscape navigator4.7 でパスすることができます (これはさらに証明します)ブラウザとは関係ありません

Cookie を有効にしても、ウィンドウ内に有効なセッション ID (URL ではなくセッション Cookie に記録されている) があり、新しいウィンドウを開いて同じページに入ると、セッションのみを複数のウィンドウで使用することはできません。前のウィンドウに影響を与えることなく、新しいセッション ID が再び取得されます。

複数のウィンドウで同じセッション ID を使用したい場合は、

url の後にセッション ID を指定するだけです。つまり、セッション ID を持つウィンドウの URL をコピーして、新しく開いたウィンドウに貼り付けると、セッション ID の原理を理解した後は、Cookie とセッションを組み合わせるのは難しくありません。まず、現在の有効なセッション ID を取得して、それを Cookie に記録します。他のウィンドウでは、Cookie を使用して現在のセッション ID を取得できます。

http://www.bkjia.com/PHPjc/328096.htmlwww.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/328096.html

PHP のセッションは、デフォルトでクライアントの Cookie (通常の意味での Cookie と区別するために、セッション Cookie と呼びます。通常の意味での Cookie は Cookie です) を使用して sessi...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート