クッキーの意味
- ログイン後、Cookieに情報が保存されているとします。この情報の有効期限は7日です。
- ブラウザを閉じるかどうかに関係なく、キャッシュをクリアしない限り、Cookieは常にそこにあります。
- 7日で期限切れ
- ログインすると:
- まず、Cookieに保存した情報があるかどうかを確認します
- ある場合は、ログインを直接実行して処理を完了します
- そうでない場合は、ログインしていないものとして処理されます
- 一度ログインする限り:
- このログイン情報は7日以内に保存できます
- 7日以内に再度ログインする必要はありません。ウェブサイトを開くたびに、ログインの完了に応じて処理されます。
- 7日後、再度ログインする必要があります
- それは7日間のログインフリー機能を実現することです
クッキーとは
cookie
データが文字列の形式で保存される場所です
- すべてのHTTPリクエストは、リクエストヘッダーのCookieをサーバーに送信します
- すべてのHTTP応答は、応答ヘッダーにCookieを入れてクライアントに送信します
- つまり、Cookieを手動で設定する必要はなく、クライアントとサーバー間でデータが自動的に移動されます。
- クッキーの内容を設定するだけです。
クッキーの保管形態
- Cookieは文字列
key=value
の形式で保存され、次の形式で文字列に表示されます。
- それぞれ
key=value
がデータの一部です
- 複数のデータに
;
分割
`a=100; b=200; c=300;`
クッキーの特徴
- ドメイン名で保存:つまり、設定した人は誰でも読むことができます
- 適時性:つまり、有効期限があり、
- デフォルトはセッションレベルです(つまり、ブラウザを閉じると期限切れになります)
- 手動で設定できます
- ストレージサイズには制限があります:通常4kbまたは約50
- フロントエンドとバックエンドの両方を操作できます。
- jsによるフロントエンド操作
- バックエンドはバックエンド言語で動作します
- 自動キャリーをリクエストする:
- クッキースペースにコンテンツがある場合
- 現在のドメイン名でのリクエストである限り、Cookieが自動的に運ばれ、リクエストヘッダーに配置されます。
- クッキーに自動的に運ばれる金額
- クッキーにコンテンツがない場合、それは運ばれません
JS操作Cookie
クッキーを追加する
- 文法:
document.cookie = "key=value";
- 注:一度に設定できるCookieは1つだけです。2つ設定する場合は、2回書き込む必要があります。
- クッキー設定の適時性
- 設定されていない場合、デフォルトはセッションエージングです(ブラウザを閉じると消えます)
- クッキーの適時性を設定することは、クッキーを変更することです
document.cookie = "key=value; 修饰信息1=修饰的值1;修饰信息2=修饰的值2"
- 有効期限の設定:
document.cookie = "key=value; expires = 时间对象"
- 有効なパスを設定します:(
document.cookie = "key=value; path=路径"
パスが設定されていない場合、デフォルトは現在のディレクトリパスです)
- クッキーを設定するタイミング
- new Date()を使用して取得するのは、端末の時刻です。これは、+ 8タイムゾーンの時刻です。
- 新しいDate()で9:30を取得するとします。
- しかし、私たちのターミナルでのこのクッキーの時間は17 :: 30です
- 現時点でCookieを期限切れにする場合
- それからあなたが得る終末時間は-8時間です
document.cookie = 'a=100';
document.cookie = 'b=hello';
var date = new Date('2022/2/12');
document.cookie = "c=200; expires="+date;
document.cookie = "d=300;path=/";
var date1 = new Date();
date1.setTime(date1.getTime()-8*60*60*1000+5*1000);
document.cookie = "e=200;expires="+date1;
document.cookie = 'f=100; expires=Thu,18 Dec 2043 12:00:00 GMT';
console.log(document.cookie);
クッキーを削除する
- クッキーは削除できません
- このクッキーがもう必要ない場合
- 次に、このCookieの有効期限を現在の時刻より前に設定してから、削除します。
document.cookie = "name=zhangsan";
var date = new Date();
date.setTime(date.getTime()-8*60*60*1000-1);
document.cookie = "name=zhangsan;path=/;expires="+date;
クッキーを取得する
- jsはcookieを取得します:
document.cookie
- 彼は単一のデータを取得することはできず、すべてのCookieしか取得できません。
document.cookie = "aa=100";
document.cookie = "bbb=200";
document.cookie = "c=300";
document.cookie = "ac=60";
console.log(document.cookie);
var key = "ac";
var result;
var str = document.cookie;
var arr = str.split("; ");
for(var i=0; i<arr.length; i++){
var tempArr = arr[i].split("=");
if(tempArr[0]==key){
result = tempArr[1];
break;
}
}
console.log(result);
JSオペレーションCookieパッケージ
- jsでCookieを追加、削除、チェック、変更するための特別な方法がないため
- したがって、メソッドを自分でカプセル化する必要があります
クッキーを設定する
function setCookie(key, value, expires){
const time = new Date();
time.setTime(time.getTime()-1000*60*60*24*8+expires);
document.cookie = `${
key}= ${
value}; expires=${
time}`;
}
クッキーを削除する
function delCookie(name){
setCookie(name,1,-1);
}
クッキーを取得する
function getCookie(key){
const cookieArr = document.cookie.split('; ');
let value = '';
cookieArr.forEach(item=>{
if(item.split('=')[0] === key){
value = item.split('=')[1];
}
})
return value;
}
PHP操作Cookie
クッキーを追加する
- 文法:
setcookie(key,value,过期时间);
- キー:設定するCookieの名前
- value:設定するCookieの値
- 有効期限:書き込むことはできません。デフォルトはセッション時間制限です。
- バックエンドは、time()メソッドを使用して時間オブジェクトを取得します
- あなたが得るものは秒単位の世界標準時間です
- 現在の時刻から15秒後:time()+ 15
setcookie('php','200',time()+15);
クッキーを変更する
- バックエンド変更Cookie
- setcookieメソッドも使用します
- もう一度設定するだけです
setcookie('a',100);
setcookie('a',200);
クッキーを削除する
- バックエンドのCookieを削除する
- setcookieメソッドも使用します
- Cookieの有効期限が現在の時刻より前に設定されているだけです
setcookie('a','hello',time()-1);
クッキーを取得する
- バックエンドからCookieを取得する
- フロントエンドがリクエストを送信すると、Cookieはリクエストヘッダーで運ばれます
- PHPには、と呼ばれる事前定義された変数があります
$_COOKIE
- と同様の連想配列です
$_GET/$_POST
- そこに保存されているのはCookie情報です。
- どちらにしますか、
$_COOKIE
取り出してください
コードデモ
<?php
setcookie('php',200,time()+15);
setcookie('php',100);
$php = $_COOKIE['php'];
setcookie('php',100,time()-1);
?>