ホームページ バックエンド開発 PHPの問題 PHPセッションテクノロジーには主に何が含まれていますか?

PHPセッションテクノロジーには主に何が含まれていますか?

Sep 24, 2019 pm 04:22 PM
cookie session

PHPセッションテクノロジーには主に何が含まれていますか?

この記事では主にPHPの会話機構であるCookieとセッションについて説明します。

Cookie の概要

Cookie はクライアントのブラウザに保存されるデータであり、当社は Cookie を使用してユーザー データを追跡および保存します。通常、Cookie は HTTP ヘッダーを介してサーバーからクライアントに返されます。ほとんどの Web プログラムは Cookie の操作をサポートしていますが、Cookie は HTTP ヘッダーに存在するため、ヘッダー関数の使用制限と同様に、他の情報を出力する前に設定する必要があります。

PHP は setcookie 関数を通じて Cookie を設定します。ブラウザから返された Cookie はすべて、PHP によって $_COOKIE のグローバル変数に自動的に保存されるため、$_COOKIE['key' ] を使用して Cookie を読み取ることができます。価値。

PHP の Cookie は非常に広く使用されており、ユーザーのログイン情報やショッピング カートなどの保存によく使用されます。セッションを使用する場合、通常、Cookie はユーザーを識別するためのセッション ID を保存するために使用されます。有効期間が過ぎると、Cookie はクライアントから自動的に削除されます。同時に、セキュリティ制御のために、Cookie にはドメインとパスを設定することもできますが、それらについては後の章で詳しく説明します。

Web サイトのセキュリティのため、当サイトでは当面 Cookie 変数の表示機能を提供しておりません。ローカルでテストしてください。

Cookie を設定してください

PHP Cookie を設定する最も一般的な方法は、setcookie 関数を使用することです。Setcookie には 7 つのオプションのパラメータがあります。一般的に使用する最初の 5 つは次のとおりです:

name (Cookie 名) には、$_COOKIE[ を通じてアクセスできます。 'name']

value (Cookie 値)

expire (有効期限) Unix タイムスタンプ形式、デフォルトは 0 で、ブラウザを閉じると有効期限が切れることを意味します

path (有効なパス) if パスが「/」に設定されている場合、Web サイト全体が有効です

domain (有効なドメイン) デフォルトでは、ドメイン名全体が有効です。 ' が設定されている場合、www サブドメインでのみ有効です

$value = 'test';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  //有效期一小时
setcookie("TestCookie", $value, time()+3600, "/path/", "imooc.com"); //设置路径与域
ログイン後にコピー

PHP で Cookie を設定する関数 setrawcookie もあります。Setrawcookie は基本的に setcookie と同じです。唯一の違いは、値が自動的に設定されないことです。 urlencode されているため、必要に応じて urlencode を手動で実行する必要があります。

setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365);
ログイン後にコピー

Cookie は HTTP ヘッダーを通じて設定されるため、ヘッダー メソッドを使用して直接設定することもできます。

header("Set-Cookie:cookie_name=value");
ログイン後にコピー

Cookie の削除と有効期限

これまでの章で Cookie を設定する機能について学習しましたが、Cookie を削除する機能がないことがわかりました。 PHP で Cookie を削除するには、setcookie 関数を使用します。

setcookie('test', '', time()-1);
ログイン後にコピー

Cookie の有効期限が現在時刻より前に設定されている場合、Cookie は自動的に期限切れになり、Cookie を削除する目的が達成されることがわかります。この設計の理由は、Cookie が HTTP ヘッダーを介して渡されるためです。クライアントは、サーバーから返された Set-Cookie セグメントに基づいて Cookie を設定します。Cookie を削除するために新しい Del-Cookie を使用する必要がある場合、HTTP ヘッダーが複雑になります。実際、Cookie の設定、更新、削除は Set-Cookie を通じて簡単かつ明確に行うことができます。

原理を理解した後は、ヘッダーから直接 Cookie を削除することもできます。ここでは、

header("Set-Cookie:test=1393832059; expires=".gmdate('D, d M Y H:i:s \G\M\T', time()-1));
ログイン後にコピー

gmdate を使用してグリニッジ標準時を生成し、時差の影響を排除しています。

セッションと Cookie の類似点と相違点

Cookie はクライアントにデータを保存し、ユーザーとサーバー間の接続を確立します。通常は多くの問題を解決できますが、Cookie はクライアントにデータを保存し、ユーザーとサーバー間の接続を確立します。それでもいくつかの制限があります:

Cookie は比較的安全ではなく、簡単に盗まれて Cookie のなりすましにつながる可能性があります

単一の Cookie の値は最大 4k しか保存できません

すべてのリクエストにはネットワーク接続が必要です 送信、占有帯域幅

session は、サイズ制限なしでユーザーのセッション データをサーバー側に保存し、session_id を通じてユーザーを識別します。デフォルトでは、PHP セッション ID は次のとおりです。 Cookie を介して保存されるため、Seesion はある程度まで Cookie に依存しています。ただし、これは絶対的なものではなく、セッション ID はパラメータを通じて実装することもでき、識別のためにセッション ID をサーバーに渡すことができる限り、セッションを使用できます。

セッションの使用

PHP でセッションを使用するのは非常に簡単です。最初に session_start メソッドを実行してセッションを開き、次にグローバル変数 $ を介してセッションの読み取りと書き込みを行います。 _セッション。

session_start();
$_SESSION['test'] = time();
var_dump($_SESSION);
ログイン後にコピー

session は、設定される値を自動的にエンコードおよびデコードするため、セッションはデータやオブジェクトを含むあらゆるデータ型をサポートできます。

session_start();
$_SESSION['ary'] = array('name' => 'jobs');
$_SESSION['obj'] = new stdClass();
var_dump($_SESSION);
ログイン後にコピー

デフォルトでは、セッションはファイルの形式でサーバーに保存されます。したがって、ページ上でセッションが開かれると、セッション ファイルが排他的に占有されます。これにより、現在のページへの他の同時アクセスが発生します。ユーザーは実行できず待機することになります。

セッションの削除と破棄

セッション値を削除するには、PHP の unset 関数を使用できます。削除後は、グローバル変数 $_SESSION から削除されるため、セッション値を削除することはできません。アクセスされる。

session_start();
$_SESSION['name'] = 'jobs';
unset($_SESSION['name']);
echo $_SESSION['name']; //提示name不存在
ログイン後にコピー

すべてのセッションを削除したい場合は、session_destroy 関数を使用して現在のセッションを破棄できます。session_destroy はすべてのデータを削除しますが、session_id はまだ存在します。

session_start();
$_SESSION['name'] = 'jobs';
$_SESSION['time'] = time();
session_destroy();
ログイン後にコピー

值得注意的是,session_destroy并不会立即的销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,因此如果需要立即销毁$_SESSION,可以使用unset函数。

session_start();
$_SESSION['name'] = 'jobs';
$_SESSION['time'] = time();
unset($_SESSION);
session_destroy(); 
var_dump($_SESSION); //此时已为空
ログイン後にコピー

如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。

使用session来存储用户的登录信息

session可以用来存储多种类型的数据,因此具有很多的用途,常用来存储用户的登录信息,购物车数据,或者一些临时使用的暂存数据等。

用户在登录成功以后,通常可以将用户的信息存储在session中,一般的会单独的将一些重要的字段单独存储,然后所有的用户信息独立存储。

$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['userinfo'] = $userinfo;
ログイン後にコピー

一般来说,登录信息既可以存储在sessioin中,也可以存储在cookie中,他们之间的差别在于session可以方便的存取多种数据类型,而cookie只支持字符串类型,同时对于一些安全性比较高的数据,cookie需要进行格式化与加密存储,而session存储在服务端则安全性较高。

以上がPHPセッションテクノロジーには主に何が含まれていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

コンピューター上の Cookie はどこにありますか? コンピューター上の Cookie はどこにありますか? Dec 22, 2023 pm 03:46 PM

コンピュータ上の Cookie は、使用するブラウザとオペレーティング システムに応じて、ブラウザ上の特定の場所に保存されます。 1. Google Chrome、C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default \Cookies に保存されます。等

Cookie はどこに保存されますか? Cookie はどこに保存されますか? Dec 20, 2023 pm 03:07 PM

Cookie は通常、ブラウザの Cookie フォルダに保存されます。ブラウザの Cookie ファイルは通常、バイナリ形式または SQLite 形式で保存されます。Cookie ファイルを直接開くと、文字化けしたり判読できないコンテンツが表示される可能性があるため、使用することをお勧めします。 Cookie を表示および管理するためにブラウザによって提供される Cookie 管理インターフェイス。

セッション失敗を解決する方法 セッション失敗を解決する方法 Oct 18, 2023 pm 05:19 PM

セッション障害は通常、セッションの有効期間の期限切れまたはサーバーのシャットダウンによって発生します。解決策: 1. セッションの有効期間を延長する; 2. 永続ストレージを使用する; 3. Cookie を使用する; 4. セッションを非同期的に更新する; 5. セッション管理ミドルウェアを使用する。

PHP セッションのクロスドメイン問題の解決策 PHP セッションのクロスドメイン問題の解決策 Oct 12, 2023 pm 03:00 PM

PHPSession のクロスドメイン問題の解決策 フロントエンドとバックエンドの分離の開発では、クロスドメイン要求が標準になっています。クロスドメインの問題に対処するときは、通常、セッションの使用と管理が必要になります。ただし、ブラウザーのオリジンポリシーの制限により、デフォルトではセッションをドメイン間で共有できません。この問題を解決するには、いくつかの技術と方法を使用して、セッションのクロスドメイン共有を実現する必要があります。 1. ドメイン間でセッションを共有するための Cookie の最も一般的な使用法

モバイル Cookie はどこにありますか? モバイル Cookie はどこにありますか? Dec 22, 2023 pm 03:40 PM

携帯電話上の Cookie は、モバイル デバイスのブラウザ アプリケーションに保存されます: 1. iOS デバイスでは、Cookie は Safari ブラウザの [設定] -> Safari -> [詳細] -> [Web サイト データ] に保存されます; 2. Android デバイスでは、Cookie は保存されますChromeブラウザの設定→サイト設定→Cookieなど

JavaScript Cookie と PHP Cookie の違いは何ですか? JavaScript Cookie と PHP Cookie の違いは何ですか? Sep 02, 2023 pm 12:29 PM

JavaScriptCookies JavaScript Cookie の使用は、設定、購入、手数料、その他の情報を記憶および追跡する最も効果的な方法です。訪問者のエクスペリエンスを向上させるために必要な情報やウェブサイトの統計。 PHPCookieCookie は、クライアント コンピューターに保存され、追跡目的で保持されるテキスト ファイルです。 PHP は HTTP Cookie を透過的にサポートします。 JavaScript Cookie はどのように機能しますか?サーバーは、訪問者のブラウザに Cookie の形式でデータを送信します。ブラウザは Cookie を受け入れることができます。存在する場合、それは訪問者のハードドライブにプレーンテキストレコードとして保存されます。さて、訪問者がサイト上の別のページに到達すると、

クッキーの仕組み クッキーの仕組み Sep 20, 2023 pm 05:57 PM

Cookie の動作原理には、サーバーが Cookie を送信し、ブラウザが Cookie を保存し、ブラウザが Cookie を処理して保存することが含まれます。詳細な紹介: 1. サーバーは Cookie を送信し、サーバーは Cookie を含む HTTP 応答ヘッダーをブラウザーに送信します。この Cookie には、ユーザーの本人認証、設定、ショッピング カートの内容などの情報が含まれており、ブラウザがこの Cookie を受信すると、ユーザーのコンピュータに保存されます。2. ブラウザは Cookie などを保存します。

ブラウザの Cookie が保存される場所の詳細な説明 ブラウザの Cookie が保存される場所の詳細な説明 Jan 19, 2024 am 09:15 AM

インターネットの普及により、ブラウザを使用してインターネットを閲覧することが生活様式になりました。ブラウザを日常的に使用する中で、オンラインショッピング、ソーシャルネットワーキング、電子メールなど、アカウントのパスワードを入力する必要がある場面に遭遇することがよくあります。この情報は、次回アクセスするときに再度入力する必要がないようにブラウザによって記録される必要がありますが、このような場合に Cookie が役に立ちます。クッキーとは何ですか? Cookie とは、サーバーからユーザーのブラウザに送信され、ローカルに保存される小さなデータ ファイルを指し、一部の Web サイトでのユーザーの行動が含まれています。

See all articles