ホームページ バックエンド開発 PHPチュートリアル COOKIEとSESSIONの関係や違いなど

COOKIEとSESSIONの関係や違いなど

Aug 08, 2016 am 09:20 AM
cookie php session string

1. Cookie の概要

Cookie はユーザーを識別するためによく使用されます。 Cookie は、サーバーがユーザーのコンピュータ上に残す小さなファイルです。同じコンピュータがブラウザを通じてページをリクエストするたびに、Cookie も送信されます。 PHP を使用すると、Cookie 値を作成および取得できます。

1. Cookieの設定

PHPはSetCookie関数を使用してCookieを設定します。

SetCookie 関数は Cookie を定義し、それを HTTP ヘッダーの末尾に追加します。 SetCookie 関数のプロトタイプは次のとおりです:
int SetCookie(string name, string value, int期限切れ, string path, string Domain, int secure );

パラメータの説明: Cookie 名、Cookie 値、有効期限 (int)、有効なパス、限定されたドメイン名、https 配信のみが有効です

注: 現在設定されている Cookie は、これは、Cookie が設定されたページでサーバーからクライアントのブラウザに渡され、ブラウザがクライアントのマシンから Cookie を取り出して送信できるためです。次のページでサーバーに戻ります。 usageの例:

normal使用:

setcookie( 'name'、 'php huaibei'); ',time()+24*60*60);//1day

Cookie はパス指向であり、デフォルトで現在のファイルに保存されます。パスが設定されていない場合、異なるファイルの Cookie は異なる場所に保存されます。図に示すように、デフォルトでは mytest フォルダーに保存されます


2. Cookie を受信して​​処理します

クライアントとサーバー間の Web 通信プロトコルは http です。 。 PHP が http 経由でユーザー データを取得するために一般的に使用される 3 つのメソッドは、POST メソッド、GET メソッド、および Cookie です。 PHP のデフォルトの配信方法は Cookie であり、これも最適な方法です。

たとえば、MyCookier という名前の Cookie を設定すると、PHP は WEB サーバーが受信した HTTP ヘッダーからそれを自動的に分析し、$myCookie という名前の通常の変数と同様の変数を形成します。 value

3、Cookie を削除します

既存の Cookie を削除するには、2 つの方法があります:

1 つは、name パラメーターのみを使用して SetCookie を呼び出し、それに次の名前を付ける方法です。の名前が​​関連するユーザーのコンピューターから削除されます。例: setcookie('name','');

もう 1 つの方法は、Cookie の有効期限を time() または time()-1 に設定してから、この Cookie を設定することです。このページは閲覧後、削除されました(実際には無効になりました)。 例: setcookie('name','PHP Huaibei',time()-24*60*60);

Cookie が削除されても、その値は現在のページで引き続き有効であることに注意してください。

Cookie使用上の注意:

まず、HTMLファイルの内容を出力する前に設定する必要があります(CookieはHTTPプロトコルヘッダーの一部であり、ブラウザとサーバー間で情報を転送するために使用されます)したがって、これらは HTML ファイル内で使用する必要があります。ファイル自体の内容が出力される前に Cookie 関数が呼び出されます。
ob_end_flush(); // キャッシュを更新すると、ヘッダー プロンプト エラーを防ぐことができます);

Cookie の制限は、ブラウザごとに異なります。ブラウザで作成できる Cookie の最大数は 30 で、各 Cookie は 4KB を超えることはできません。各 Web サイトで設定できる Cookie の総数は 20 を超えることはできません。

現在設定されているCookieはすぐには有効になりませんが、次のページまで表示されます


2. セッションの紹介

セッション メカニズムはサーバー側のメカニズムであり、サーバーはハッシュ テーブル (またはハッシュ テーブル) に似た構造を使用して、各 Web サイト訪問者に一意の識別子、つまりセッション ID を割り当てます。これは 2 つの方法で保存できます。URL 経由で渡す方法と、クライアントの Cookie に保存する方法です。もちろん、セッションをデータベースに保存することもできます。これはより安全ですが、効率は低下します。 PHP のセッション メカニズムは、Cookie を設定し、その Cookie にセッション ID を保存することで、サーバー側でセッション ファイルが生成され、Web アプリケーションに関連するデータが保存されます。これらのセッションはページ間で転送されます。

PHP 関連関数

PHP にはセッションに関連する関数が多数ありますが、最も一般的に使用される関数は次のとおりです:

session_start(): セッション メカニズムを有効にします。セッションを使用する必要があるプログラム ファイルの先頭で呼び出します

session_register(): セッション変数を登録します

session_unregister(): セッション変数を (1 つずつ) 削除します

session_is_registered ( ): セッション変数が登録されているかどうかを確認します

session_disstroy(): すべてのセッション変数を破棄します(ファイルを含むすべてのセッション変数が破棄されます)

次の点に注意する必要があります:

1関数 session_start() プログラムの先頭で実行する必要があり、その前に出力コンテンツを置くことはできません。「警告: セッション Cookie を送信できません - ヘッダーは既に送信されました。」 " が表示されます。

2. 関数 session_register() は、セッションに保存される関連変数を登録するために使用されます。その使用法は次のとおりです:

$val = " session value";

session_register("val ");

?>

val は登録するセッション変数の名前です。登録時に「$」記号を追加しないでください。変数名を書き込みます。

3. 関数 session_unregister() の使い方は上記の関数と全く同じですが、上記の関数は

session 変数を登録します。

4. 関数 session_is_registered() は、変数が登録されているかどうかを判断するために使用されます。

5. 関数 session_destroy() は、主にシステムがログアウトするときにすべてのセッション変数を破棄するために使用されます。パラメータはなく、直接呼び出すことができます。

セッションとPHP.iniの関係の設定

1, session.save_handler = file

はセッションデータの読み取り/書き込みに使用され、デフォルトはファイルです。これにより、PHP のセッション管理関数が指定されたテキスト ファイルを使用してセッション データを保存できるようになります

2、 session.save_path = "/xammp/temp/"

セッション ファイルを保存するディレクトリを指定します、 「別のディレクトリに移動」を指定できますが、指定されたディレクトリには httpd デーモン (Apache や www など) の所有者からの書き込み権限がなければなりません。そうでない場合、セッション データは復元できません。 session.save_path = "N;/path" (N は整数) のように記述することもできます。これは、すべてのセッション ファイルが同じディレクトリに保存されるわけではなく、異なるディレクトリに分散されていることを意味します。これは、サーバーが大量のセッション ファイルを処理する場合に役立ちます。 (注: ディレクトリは手動で作成する必要があります)

3, session.auto_start = 0

このオプションが有効な場合、セッションはユーザーリクエストごとに初期化されます。推奨されません。session_start() を通じてセッションを明示的に初期化することをお勧めします。

QQ スクリーンショット 20111115173320

上の図: 左側は xammp/tmp/ の下に保存されたセッション ファイル、コンテンツは PHP シリアル化形式です

右側: 最初の行is echo Serialize($_SESSION['name']);//シリアル化

2 行目はセッション値を出力するものです

************************* ここで、ファイル名は session-name で、内容はは PHP シリアル化形式です

出典 :http://www.cnblogs.com/phphuaibei/archive/2011/11/15/2250082.html

以上、COOKIEとSESSIONの関係と違いを、関連する内容も含めて紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。

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

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 には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles