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

COOKIEとSESSIONの関係と違いなど、cookieessionの違い_PHPチュートリアル

WBOY
リリース: 2016-07-13 09:46:25
オリジナル
995 人が閲覧しました

COOKIEとSESSIONの関係と違いなど、cookieessionの違い

1. Cookieの紹介

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

1. クッキーを設定します

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

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

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

注: 現在設定されている Cookie はすぐには有効になりませんが、次のページまで表示されません。これは、Cookie が設定されたページでサーバーからクライアントのブラウザに渡され、ブラウザがそれを実行できないためです。次のページまで保存します。Cookie がクライアントのマシンから取得され、サーバーに送り返される理由。

使用例:

通常の使用:

setcookie('name','PHP淮北');

有効期限付き:

setcookie('name','PHP Huaibei',time()+24*60*60);//1day

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

sss

2. Cookie の受信と処理

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

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

3. Cookie を削除します

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

1 つは、name パラメーターのみを指定して SetCookie を呼び出すことです。その後、この名前の Cookie が関連するコンピューターから削除されます。例: setcookie('name','');

もう 1 つの方法は、Cookie を設定することです。有効期限が time() または time()-1 の場合、Cookie はページの閲覧後に削除されます (実際には期限切れになります)。 例: setcookie('name','PHP Huaibei',time()-24*60*60);
Cookie が削除されても、その値は現在のページで引き続き有効であることに注意してください。
Cookie使用上の注意:

まず、HTML ファイルのコンテンツが出力される前に設定する必要があります (Cookie は HTTP プロトコル ヘッダーの一部であり、ブラウザとサーバーの間で情報を転送するために使用されるため、Cookie 関数は、HTML ファイルのコンテンツを出力する前に呼び出す必要があります) HTML ファイル自体に属するコンテンツが出力されます

まずは PHP ページで使用できます
ob_start();//スタート

コード…..

ob_end_flush() //キャッシュを更新します

ヘッダープロンプトエラーを防ぐことができます);

ブラウザによって Cookie の処理方法が異なります

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_distroy(): すべてのセッション変数を破棄します (ファイルを含むすべてのセッション変数が破棄されます)

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

1. 関数 session_start() はプログラムの先頭で実行する必要があり、それ以外の場合は出力コンテンツを置くことはできません

「警告: セッション Cookie を送信できません - ヘッダーは既にあります

」が表示されます

「このような警告メッセージを送信しました。

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

$val = "セッション値";

session_register("val");

?>

valは登録するセッション変数名です。登録時に「$」記号を付けずに変数名のみを記述します。

3. session_unregister() 関数は上記の関数とまったく同じように使用されますが、上記の関数は

を登録する関数です。

セッション変数。指定されたセッション変数を削除します。

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

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

SessionとPHP.iniの関係の設定

1,session.save_handler = ファイル

セッションデータの読み取り/書き込みに使用される方法は、デフォルトではファイルです。これにより、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 シリアル化形式です

右側: 最初の行は echoserialize($_SESSION['name']);//Serialization

2 行目はセッション値を出力します

***************** ファイル名はセッション名で、内容は PHP シリアル化形式です

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

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

www.bkjia.com

本当

技術記事 COOKIE と SESSION の関係と違いなど、Cookie セッションの違い 1. Cookie の概要 Cookie はユーザーを識別するためによく使用されます。 Cookie は、サーバーがユーザーのコンピュータ上に残す小さなファイルです。同じ計算のたびに...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート