久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網
      最全最豐富的資訊網站

      php cookie(專題)

      本專題通過圖文、視頻的形式全面介紹了php cookie的由來,php cookie屬性有哪些,php cookie函數用法以及php cookie實際應用實例,通俗易懂!歡迎php中文網的同學們學習!

      php cookie(專題)

      一:什么是 Cookie ?

      cookie 常用于識別用戶。

      cookie 是一種服務器留在用戶計算機上的小文件。

      每當同一臺計算機通過瀏覽器請求頁面時,這臺計算機將會發(fā)送 cookie。

      通過 PHP,您能夠創(chuàng)建并取回 cookie 的值。

      相關專題推薦:php session

      二:Cookie 的誕生

      由于HTTP協議是無狀態(tài)的,而服務器端的業(yè)務必須是要有狀態(tài)的。

      Cookie誕生的最初目的是為了存儲web中的狀態(tài)信息,以方便服務器端使用。

      比如判斷用戶是否是第一次訪問網站。目前最新的規(guī)范是RFC 6265,它是一個由瀏覽器服務器共同協作實現的規(guī)范。

      三:Cookie 的原理

      php cookie(專題)

      第一次訪問網站的時候,瀏覽器發(fā)出請求,服務器響應請求后,會將cookie放入到響應請求中,在瀏覽器第二次發(fā)請求的時候,會把cookie帶過去,服務端會辨別用戶身份,當然服務器也可以修改cookie內容。

      四:Cookie 屬性

      Cookie是一段不超過4KB的小型文本數據,由一個名稱(Name)、一個值(Value)和其它幾個用于控制Cookie有效期、安全性、使用范圍的可選屬性組成。

      php cookie(專題)

      Name 表示 Cookie 的名稱。
      Value

      表示 Cookie 的值。

      Domain

      指定了可以訪問該 Cookie 的 Web 站點或域。

      Cookie 機制并未遵循嚴格的同源策略,允許一個子域可以設置或獲取其父域的 Cookie。

      Path

      定義了Web站點上可以訪問該Cookie的目錄。

      Expires

      什么是有效期,就是圖中的Expires屬性,一般瀏覽器的cookie都是默認儲存的,當關閉瀏覽器結束這個會話的時候,這個cookie也就會被刪除。

      Secure

      指定是否使用HTTPS安全協議發(fā)送Cookie。

      使用HTTPS安全協議,可以保護Cookie在瀏覽器和Web服務器間的傳輸過程中不被竊取和篡改。該方法也可用于Web站點的身份鑒別,即在HTTPS的連接建立階段,瀏覽器會檢查Web網站的SSL證書的有效性。

      HttpOnly 用于防止客戶端腳本通過document.cookie屬性訪問Cookie,有助于保護Cookie不被跨站腳本攻擊竊取或篡改。

      五:PHP Cookie 函數

      1、setcookie — 發(fā)送 Cookie

      setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] ) : bool

      setcookie() 定義了 Cookie,會和剩下的 HTTP 頭一起發(fā)送給客戶端。

      和其他 HTTP 頭一樣,必須在腳本產生任意輸出之前發(fā)送 Cookie(由于協議的限制)。

      請在產生任何輸出之前(包括 <html> 和 <head> 或者空格)調用本函數。

      一旦設置 Cookie 后,下次打開頁面時可以使用 $_COOKIE 讀取。

      Cookie 值同樣也存在于 $_REQUEST。

      參數

      參數 描述
      name Cookie 名稱。
      value

      Cookie 值。 這個值儲存于用戶的電腦里,請勿儲存敏感信息。

      expire

      Cookie 的過期時間。

      這是個 Unix 時間戳,即 Unix 紀元以來的秒數。

      也就是說,基本可以用 time() 函數的結果加上希望過期的秒數。

      path

      Cookie 有效的服務器路徑。

      設置成 '/' 時,Cookie 對整個域名 domain 有效。

      如果設置成 '/foo/', Cookie 僅僅對 domain 中 /foo/ 目錄及其子目錄有效。

      默認值是設置 Cookie 時的當前目錄。

      domain

      Cookie 的有效域名/子域名。

      設置成子域名,會使 Cookie 對這個子域名和它的三級域名有效。

      要讓 Cookie 對整個域名有效,只要設置成域名就可以了。

      secure

      設置這個 Cookie 是否僅僅通過安全的 HTTPS 連接傳給客戶端。

      設置成 TRUE 時,只有安全連接存在時才會設置 Cookie。

      如果是在服務器端處理這個需求,程序員需要僅僅在安全連接上發(fā)送此類 Cookie 。

      httponly

      設置成 TRUE,Cookie 僅可通過 HTTP 協議訪問。

      這意思就是 Cookie 無法通過類似 JavaScript 這樣的腳本語言訪問。

      要有效減少 XSS 攻擊時的身份竊取行為,可建議用此設置,不過這個說法經常有爭議。

      返回值

      如果在調用本函數以前就產生了輸出,setcookie() 會調用失敗并返回 FALSE。

      如果 setcookie() 成功運行,返回 TRUE。

      示例

      <?php $value = 'something from somewhere';  setcookie("TestCookie", $value); setcookie("TestCookie", $value, time()+3600);  /* 1 小時過期  */ setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1); ?>

      2、setrawcookie — 發(fā)送未經 URL 編碼的 cookie

      setrawcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] ) : bool

      setrawcookie() 和 setcookie() 非常相似,唯一不同之處是發(fā)送到瀏覽器的 cookie 值沒有自動經過 URL 編碼(urlencode)。

      六:PHP Cookie 簡單示例

      1、基本操作

      <?php  //添加Cookie setcookie('username', 'phpcn', time() + 3600);  //獲取Cookie $username = $_COOKIE['username'];  //刪除Cookie setcookie('username', '', time() - 3600);  //修改Cookie setcookie('username', 'phpcn-updated', time() + 3600);  ?>

      2、面向過程封裝

      <?php  /**  * 獲取 Cookie  * @param  string $name Cookie 名稱  * @return mixed       Cookie 值  */ function cookie_get($name) { 	return isset($_COOKIE[$name]) ? $_COOKIE[$name] : null; }  /**  * 刪除 Cookie  * @param  string $name Cookie 名稱  */ function cookie_del($name) { 	setcookie($name, '', time() - 3600); }  /**  * 設置Cookie  * @param  string  $name   Cookie 名稱  * @param  mixed  $value  Cookie 值  * @param  integer $expire Cookie 過期時間  * @param  string  $path   Cookie 有效路徑  * @param  string  $domian Cookie 有效域名/子域名  */ function cookie_set($name, $value, $expire = 3600, $path = '/', $domian = '') { 	setcookie($name, $value, time() + $expire); }  /**  * 檢測 Cookie  * @param  string  $name      Cookie 名稱  * @param  boolean $has_empty 檢測為空  * @return boolean               */ function cookie_has($name) { 	return isset($_COOKIE[$name]); }  ?>

      3、面向對象封裝

      <?php   class Cookie {     const OPTION_EXPIRE = 'expire';     const OPTION_PATH = 'path';     const OPTION_DOMAIN = 'domain';     const OPTION_SECURE = 'secure';     const OPTION_HTTPONLY = 'httponly';      /**      * Cookie 實例      * @var null      */     private static $instance = null;      /**      * Cookie 選項      * @var array      */     private $options = [         self::OPTION_EXPIRE => 3600,         self::OPTION_PATH => '/',         self::OPTION_DOMAIN => 'domain',         self::OPTION_SECURE => false,         self::OPTION_HTTPONLY => false     ];      /**      * Cookie constructor.      * @param $options      */     private function __construct($options)     {         $this->setOptions($options);     }      /**      *  privated __clone      */     private function __clone()     {      }      /**      * 獲取實例      * @param $options      * @return Cookie|null      */     public static function getInstance($options)     {         if (is_null(self::$instance)) {             self::$instance = new self($options);         }          return self::$instance;     }      /**      * 設置選項      * @param $name      * @param $value      */     public function setOption($name, $value)     {         if (isset($this->options[$name])) {             $this->options[$name] = $value;         }          throw new InvalidArgumentException('Cookie option not exists:{$name}');     }      /**      * 設置多個選項      * @param $options      */     public function setOptions($options)     {         foreach ($options as $name => $value) {             $this->setOption($name, $value);         }     }      /**      * 設置 Cookie      * @param $name      * @param $value      * @param array $options      */     public function set($name, $value, $options = [])     {         $this->setOptions($options);          if (is_array($value) || is_object($value)) {             $value = json_encode($value);         }          setcookie(             $name,             $value,             $this->options[self::OPTION_EXPIRE],             $this->options[self::OPTION_PATH],             $this->options[self::OPTION_DOMAIN],             $this->options[self::OPTION_SECURE],             $this->options[self::OPTION_HTTPONLY]         );     }      /**      * 獲取 Cookie      * @param $name      * @return array|mixed      */     public function get($name)     {         $value = $_COOKIE[$name];          if (is_array($value)) {             $arr=[];             foreach ($value as $k => $v) {                 $arr[$k] = substr($v, 0,1) == '{' ? json_decode($value) : $v;             }             return $arr;         } else {             return substr($value, 0,1) == '{' ? json_decode($value) : $value;         }     }      /**      * 刪除 Cookie      * @param $name      * @param array $options      */     public function del($name, $options = [])     {         $this->setOptions($options);          $value = $_COOKIE[$name];          if ($value) {             if (is_array($value)) {                 foreach ($value as $k => $v) {                     setcookie(                         $name . '[' . $k . ']',                         '',                         time() - 3600,                         $this->options[self::OPTION_EXPIRE],                         $this->options[self::OPTION_PATH],                         $this->options[self::OPTION_DOMAIN],                         $this->options[self::OPTION_SECURE],                         $this->options[self::OPTION_HTTPONLY]                     );                     unset($v);                 }             }else{                 setcookie(                     $name,                     '',                     time() - 3600,                     $this->options[self::OPTION_EXPIRE],                     $this->options[self::OPTION_PATH],                     $this->options[self::OPTION_DOMAIN],                     $this->options[self::OPTION_SECURE],                     $this->options[self::OPTION_HTTPONLY]                 );                 unset($value);             }         }     } }

      4、記住登錄賬號示例

      <?php  function cookie_get_username() {     return isset($_COOKIE['username']) ? $_COOKIE['username'] : null; }  function cookie_get_password() {     return isset($_COOKIE['username']) ? $_COOKIE['username'] : null; }  function cookie_get_remember() {     return isset($_COOKIE['remember']) ? 'checked' : null; }   if ($_SERVER['REQUEST_METHOD'] === 'POST') {      $username = $_POST['username'];     $password = $_POST['password'];      if (isset($_POST['remember']) && $_POST['remember'] === '1') {         setcookie('username', $username, time() + 3600);         setcookie('password', $password, time() + 3600);         setcookie('remember', '1', time() + 3600);     } else {         setcookie('username', '', time() - 3600);         setcookie('password', '', time() - 3600);         setcookie('remember', '', time() - 3600);     }      die('登錄成功!'); }  ?>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <form action="" method="post">     <table width="300" border="1" align="center" cellpadding="5" cellspacing="5">         <thead>         <tr>             <td colspan="2" align="center"><b>登錄</b></td>         </tr>         </thead>         <tr align="center">             <td>用 戶 名</td>             <td><input type="text" name="username" value="<?=cookie_get_username()?>"></td>         </tr>         <tr align="center">             <td>密碼</td>             <td><input type="password" name="password" value="<?=cookie_get_password()?>"></td>         </tr>         <tr align="center">             <td>記住賬號</td>             <td>                 <input type="checkbox" name="remember" value="1" <?=cookie_get_remember()?>>             </td>         </tr>         <tr align="center">             <td colspan="2"><input type="submit" name="Submit" value="提交" /></td>         </tr>     </table> </form>

      六:php cookie 精選技術文章

      待添加

      七:php cookie 相關視頻教程

      待添加

    2. 微信
    3. 分享
    4. php cookie(專題)

    5. 相關標簽:cookie
    6. 本文原創(chuàng)發(fā)布php中文網,轉載請注明出處,感謝您的尊重!
      • 上一篇:2020年ajax面試題及答案(最新)
      • 下一篇:沒有了
      贊(0)
      分享到: 更多 (0)
      網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號