[PHP]32.Cookie - 存放在用戶端的資料[寫入、讀出、存入陣列、刪除]

  • 5044
  • 0
  • php
  • 2022-12-03

文、意如

1.寫入Cookie
2.讀出Cookie
3.寫入Cookie陣列
4.刪除Cookie

cookie資料可以存放在用戶端的記憶體,例如登入資訊,暫存購物車的商品,

待下次使用者在造訪網頁時就可以查詢cookie中的資料,快速調出使用者的喜好

 

寫入Cookie
<?php
header("Content-type: text/html; charset=utf-8");	
//寫入cookie
setcookie("account", "yiruatstudio@gmail.com");
echo $_COOKIE['account']."<Br>";

//time() + 60 * 60 * 24  秒 (1天)
//time() + 60 * 60 * 24 * 30 秒 (30天)

setcookie("Myname", "May", time() + 60 * 60 * 24);  //1天
setcookie("Myage", 18, time() + 24 * 60 * 60);

echo $_COOKIE['Myname'];
?>

開啟開發人員F12 -→application-→cookie

可查詢cookie是否成功寫入

 

 

如果抓不到值代表位存入cookie

參考

當cookie值存在才印出
if(isset(變數)){} //判斷變數是否存在
<?php
header("Content-type: text/html; charset=utf-8");	
//寫入cookie
setcookie("account", "yiruatstudio@gmail.com");

if(isset($_COOKIE['account'])){// 當值存在才印出
    echo $_COOKIE['account']."<Br>";
}


//time() + 60 * 60 * 24  秒 (1天)
//time() + 60 * 60 * 24 * 30 秒 (30天)

setcookie("Myname", "May", time() + 60 * 60 * 24);  //1天
setcookie("Myage", 18, time() + 24 * 60 * 60);
if(isset($_COOKIE['Myname'])){ // 當值存在才印出
    echo $_COOKIE['Myname'];
}


?>

參考

 

cookie 中存入陣列
<?php
  //存入陣列
  setcookie("mystr[0]", "John");
  setcookie("mystr[1]", "Mary");
  setcookie("mystr[2]", "Andy");
  if (isset($_COOKIE['mystr'])){
    foreach ($_COOKIE['mystr'] as $key => $value)
      echo "$key : $value <br>";   
  }

 

參考

 

刪除Cookie

可以把到期時間調回過去的時間

<?php

setcookie("myuser", "May", time() + 60 * 60 * 24);  //1天
setcookie("mypwd", md5("test12345"), time() + 24 * 60 * 60);

function logout() {
//刪除cookie
  setcookie ( "myuser", "test", time () - 100 ); //將時間設定成過去的時間
  setcookie ( "mypwd", md5 ( "test12345" ), time () - 100 );
  
  echo "已登出";
}
logout ();

echo $_COOKIE ['myuser'] . "<br />";


?>

參考

Yiru@Studio - 關於我 - 意如