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

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

Jul 21, 2016 pm 03:00 PM
cookie php session 使用 頼る できる 場合 はい 深く行く 解析する デフォルト

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles