ホームページ  >  記事  >  バックエンド開発  >  PHP セッション制御 Cookie とセッション処理_PHP チュートリアル

PHP セッション制御 Cookie とセッション処理_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:49:181482ブラウズ

PHP では、通常、登録、ログイン、ユーザー情報の記録に Cookie とセッションが使用されますが、Cookie とセッションには大きな違いがありますので、一緒に見てみましょう。

セッションの紹介: HTTP (ハイパーテキスト転送プロトコル) は、ワールド ワイド ウェブ (WWW) 全体でのテキスト、グラフィック、ビデオの送信を定義します
他のすべてのデータ ルール。 HTTP はステートレス プロトコルであり、各リクエストの処理が前後のリクエストに関連していることを意味します
リクエストは関係ありません。この簡略化された実装は HTTP の普及に多大な貢献をしましたが、複雑な
を作成したい人には適していません。 Web アプリケーション開発者にとって、これは少し混乱します。この問題を解決するために、クライアント側にメソッドがあります
少量の情報 (Cookie) がマシンに保存されます。
Cookie のサイズ制限、数量、その他の理由により、開発者は別の解決策を提案しました: セッションは
ワードプロセッシング。
1つ。クッキー
アプリケーション
Cookie を設定する: setcookie() 関数はクライアント上で Cookie ファイルを生成でき、このファイルは
に保存できます。 期間、名前、値など
クッキーを作成します

コードは次のとおりです コードをコピー
setcookie('name','Lee',time()+(7*24*60*60));//有効期限が 7 日間の Cookie を設定します
?>

パラメータ 1: クッキー名
パラメータ 2: Cookie の値
パラメータ 3: Cookie の有効期限

クッキーを見る

Firefox ブラウザを開きます: [ツール]-[ページ情報]-[セキュリティ]-[Cookie の表示]、現在の Cookie 情報を表示できます
クッキーを読む

コードは次のとおりです コードをコピー
echo $_COOKIE['name'];
?>

Cookieを削除する

コードは次のとおりです コードをコピー
setcookie('名前',”);
setcookie('name','Lee',time()-1);
?>

Cookieの使用制限
1. HTML ファイルのコンテンツが出力される前に設定する必要があります;
2. ブラウザが異なると Cookie の処理に一貫性がなく、誤った結果が発生する場合があります。
3. 制限はクライアント側にあります。ブラウザが作成できる Cookie の最大数は 30 であり、各 Cookie を
4KBを超える場合、各Webサイトで設定できるCookieの総数は20を超えることはできません。

2.セッション
セッション処理
セッションセッション処理を使用する場合は、セッションを開始し、session_start() を使用してセッションを開始する必要があります。
セッションの作成とセッションの読み取り

コードは次のとおりです コードをコピー
session_start();
$_SESSION['name'] = 'リー';
echo $_SESSION['name'];
?>

セッションが存在するかどうかを確認する

コードは次のとおりです コードをコピー
session_start();
$_SESSION['name'] = 'リー';
if (isset($_SESSION['name'])) {
echo $_SESSION['name'];
}
?>

セッションを削除

コードは次のとおりです コードをコピー
session_start();
$_SESSION['name'] = 'リー';
unset($_SESSION['name']);
echo $_SESSION['name'];
?>

すべてのセッションを破棄します

コードは次のとおりです コードをコピー
session_start();
$_SESSION['name'] = 'リー';
$_SESSION['name2'] = 'リー';
session_destroy();
echo $_SESSION['name'];
echo $_SESSION['name2'];
?>


Cookieとセッションの違いと関係
•保存場所:
1. セッションはサーバーの場所に保存され、セッション関連の設定は php.ini を通じて設定できます
2. Cookie はクライアントに保存されます (実際には 2 つのタイプに分類できます:
1. 永続的な Cookie、つまり Cookie が設定された時刻は、ファイルの形式でハードディスクに保存されます。

2. セッション Cookie の場合、Cookie 時間が設定されていない場合、Cookie のライフサイクルはブラウザを閉じる前に消去されます。通常、Cookie はハードディスクに保存されず、メモリ上に保存されます。

Cookieとセッションの関係

PHP セッション制御 Cookie とセッション処理_PHP チュートリアル

Cookieはhttpヘッダーを介して送信されます:

クッキー名=PHP%BB%B4%B1%B1; PHPSESSID=cpt2ah3pi4cu7lo69nfbfllbo7

PHPSESSIDはサーバーセッションに関連付けられた重要なパラメータです

セッション ファイルをもう一度見てください: sess_cpt2ah3pi4cu7lo69nfbfllbo7

session_id の生成形式は次のとおりです: sess_ に PHPSESSID 値の文字列を加えたものです

次のように理解できます:

プログラムがクライアントのリクエストに対してセッションを作成する必要がある場合、サーバーはまずクライアントのリクエストにセッション識別子 (セッション ID と呼ばれます) が含まれているかどうかを確認します。含まれている場合は、そのセッションが以前にこのクライアントに対して作成されたことを意味します。 、サーバーはセッション ID に従ってこのセッションを取得します (取得できない場合は、新しいセッションが作成されます)。クライアントのリクエストにセッション ID が含まれていない場合は、クライアントのセッションが作成され、セッションが関連付けられます。このセッション ID が生成される場合、セッション ID の値は、繰り返されず、模倣するパターンが見つけにくい文字列である必要があります。このセッション ID は、保存のためにこの応答でクライアントに返されます。このセッション ID を保存する方法には Cookie を使用できるため、対話プロセス中にブラウザーはルールに従ってこの ID をサーバーに自動的に送信できます。通常、この Cookie の名前は SEEESIONID に似ています

php.iniのセッションとCookieに関する設定

1,session.use_cookie = 1
Cookie メソッドを使用してセッション ID 値を渡すかどうか。デフォルトは 1 で、これは有効を意味します。
2,session.name = PHPSESSID
Cookie が sessioin_id を渡すか、GET メソッドが session_id を渡すかに関係なく、キー値を使用する必要があります。形式は Cookie: sess_name=session_id; および /path.php?sess_name=session_id で、ここで sess_name を指定します。
3,session.use_only_cookies = 0
Cookie メソッドを使用してセッション ID のみが渡されることを示します。 Cookie を渡すには Cookie に加えて GET メソッドもあると述べましたが、GET メソッドは安全ではありません。ユーザー側で Cookie が無効になっている場合、GET メソッドを使用して session_id を渡します。この設定を使用すると、GET メソッドを使用して session_id を渡すことができます。
4. session.cookie_lifetime = 0、session.cookie_path = /、および session.cookie_domain =
Cookie メソッドを使用して session_id を渡す場合、Cookie の有効なドメイン、ディレクトリ、および時刻がここで指定されます。 setcookie() 関数の仮パラメータ $expire、$path、$domain にそれぞれ対応します。このうち、cookie_lifetime=0 はブラウザを閉じるまで Cookie が削除されないことを意味します。これらの値は、session_set_cookie_params() 関数を使用して変更することもできます。
5,セッション名([文字列 $name])
session_name を取得または更新します。 name が渡された場合、デフォルト名 PHPSESSID (session.name で指定) が使用されないことを意味します。それ以外の場合は、現在の session_name が取得されます。注: session_name が設定されている場合、有効にするために session_start() の前に呼び出す必要があります。
6,session_id([文字列 $id])
session_name() と似ていますが、session_id を読み取ったり、設定したりするメソッドです。同様に、session_id が設定されている場合、それを有効にするには session_start() の前に呼び出す必要があります。
7. session_set_cookie_params() と session_get_cookie_params()
session.cookie_lifetime、session.cookie_path、session.cookie_domain の 3 つの php.ini 設定は、session_set_cookie_params() を通じてリセットできます。 Session_get_cookie_params() はこれらの設定の値を取得します。

ここで、それらの違いと類似点をまとめた表を作成しました:

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632730.html技術記事 PHP では、通常、Cookie とセッションは登録、ログイン、ユーザー情報の記録に使用されますが、Cookie とセッションには大きな違いがありますので、一緒に見てみましょう。 セッションの紹介: HTTP (ハイパーテキスト...
)
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。