佳麗斯 加厚雙人/單人秋冬被子暖冬 羊毛被芯羊毛柔絲被特價包郵 憂憂魚冬外穿打底褲女秋冬厚長褲女褲加絨加厚高腰彈力鉛筆褲靴褲 韓國代購2013新款 韓版秋冬休閑女時尚磨破口袋衛衣韓版學生裝 潮

          有時,退一步,能一口氣進幾步,只是這先退一步需要勇氣和自信。

          用心愛你,努力工作。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            70 隨筆 :: 1 文章 :: 33 評論 :: 0 Trackbacks

          bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )

                setcookie() 定義一個和其余的 HTTP 標頭一起發送的 cookie。和其它標頭一樣,cookie 必須在腳本的任何其它輸出之前發送(這是協議限制)。這需要將本函數的調用放到任何輸出之前,包括 <html> 和 <head> 標簽以及任何空格。如果在調用 setcookie() 之前有任何輸出,本函數將失敗并返回 FALSE。如果 setcookie() 函數成功運行,將返回 TRUE。這并不說明用戶是否接受了 cookie。

               注: 自 PHP 4 起,可以用輸出緩存來在調用本函數前輸出內容,代價是把所有向瀏覽器的輸出都緩存在服務器,直到下命令發送它們。可以在代碼中使用 ob_start() 及 ob_end_flush() 來實現這樣的功能,或者通過修改 php.ini 中的 output_buffering 配置選項來實現,也可以通過修改服務器配置文件來實現。

                除了 name 外,其它所有參數都是可選的。可以用空字符串("")替換某參數以跳過該參數。因為參數 expire 是整型,不能用空字符串掉過,可以用零(0)來代替 。下面的說明對 setcookie() 的每一個參數都進行了解釋。可以對照 Netscape cookie 規范以了解 setcookie() 的每一個參數的細節以及通過閱讀 RFC 2965 了解 HTTP cookie 的工作方式。

          1. setcookie() 參數詳解
          參數 說明 舉例
          name Cookie 的名字:   使用 $_COOKIE['cookiename'] 調用名為 cookiename 的 cookie。
          value Cookie 的值:此值保存在客戶端,不要用來保存敏感數據。   假定 name 是 'cookiename',可以通過 $_COOKIE['cookiename'] 取得其值。
          expire Cookie 過期的時間:這是個 Unix 時間戳,即從 Unix 紀元開始的秒數。換而言之,通常用 time() 函數再加上秒數來設定 cookie 的失效期。或者用 mktime()來實現。   time()+60*60*24*30 將設定 cookie 30 天后失效。如果未設定,cookie 將會在會話結束后(一般是瀏覽器關閉)失效。
          path Cookie 在服務器端的有效路徑:   如果該參數設為 '/' 的話,cookie 就在整個 domain 內有效,如果設為 '/foo/',cookie 就只在 domain 下的 /foo/ 目錄及其子目錄內有效,例如 /foo/bar/。默認值為設定 cookie 的當前目錄。
          domain 該 cookie 有效的域名:   要使 cookie 能在如 example.com 域名下的所有子域都有效的話,該參數應該設為 '.example.com'。雖然 . 并不必須的,但加上它會兼容更多的瀏覽器。如果該參數設為 www.example.com 的話,就只在 www 子域內有效。細節見 Cookie 規范中的 tail matching。
          secure 指明: cookie 是否僅通過安全的 HTTPS 連接傳送。當設成 TRUE 時,cookie 僅在安全的連接中被設置。默認值為 FALSE。   0 或 1

                當 cookie 被設置后,便可以在其它頁面通過 $_COOKIE 或 $HTTP_COOKIE_VARS 數組取得其值。需要注意的是,autoglobals 的 $_COOKIE 形式適用于 PHP 4.1.0 或更高版本。而 $HTTP_COOKIE_VARS 則從 PHP 3 起就可以使用。Cookie 的值也會被保存到 $_REQUEST 數組中。

               注: 如果 PHP 的選項 register_globals 被設為 on 的話,cookie 的值仍然會被斌到變量內。在下面的例子中,$TestCookie 會被注冊,但是仍然推薦使用 $_COOKIE 數組。

          常見缺陷:

               *       Cookies 不會在設置它的本頁生效,要測試一個 cookie 是否被成功的設定,可以在其到期之前通過另外一個頁面來訪問其值。過期時間是通過參數 expire 來設置的。可以簡單地使用 print_r($_COOKIE); 來調試現有的 cookies。

               *       Cookie 必須用和設定時的同樣的參數才能刪除。如果其值一個空字符串,或者是 FALSE,并且其它的參數都和前一次調用 setcookie 時相同,那么所指定名稱的 cookie 將會在遠程客戶端被刪除。

               *       由于把 cookie 的值設為 FALSE 會使客戶端嘗試刪除這個 cookie,所以要在 cookie 上保存 TRUE 或 FALSE 時不應該直接使用 boolean 值,而應該用 0 來表示 FALSE,用 1 來表示 TRUE

               *       可以把 cookie 的名稱設置成一個數組,但是數組 cookie 中的每個元素的值將會被單獨保存在用戶的系統中。考慮使用 explode() 函數用多個名稱和值設定一個 cookie。不推薦將 serialize() 用于此目的,因為它可能會導致一個安全漏洞。

                  在 PHP 3 中,在同一個 PHP 腳本中多次使用 setcookie() 來設置 cookie,將會按照倒序的方式來分別執行,如果想要在插入另外一個 cookie 之前刪除一個 cookie,要把插入放到刪除之前。自 PHP 4 起,多次調用 setcookie() 則是按照順序來執行的。

          下面一些例子說明了如何發送 cookie:

          例子 1. setcookie() 發送例子
          $value = 'something from somewhere';

          setcookie("TestCookie", $value);
          setcookie("TestCookie", $value,time()+3600);   /* expire in 1 hour */
          setcookie("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);

          注意 cookie 中值的部分在發送的時候會被自動用 urlencode 編碼并在接收到的時候被自動解碼并把值賦給與自己同名的 cookie 變量。如果不想這樣并且在使用 PHP 5 的話,可以用 setrawcookie() 來代替。下面這個簡單的例子可以得到剛才所設定的 cookie 的值:

          <?php
          // 輸出單獨的 cookie
          echo $_COOKIE["TestCookie"];
          echo $HTTP_COOKIE_VARS["TestCookie"];

          // 另一個調試的方法就是輸出所有的 cookie
          print_r($_COOKIE);
          ?>

                要刪除 cookie 需要確保它的失效期是在過去,才能觸發瀏覽器的刪除機制。下面的例子說明了如何刪除剛才設置的 cookie:

          例子 2. setcookie() 刪除例子
          // 將過期時間設為一小時前
          setcookie("TestCookie", "", time() - 3600);
          setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);

                也可以通過在 cookie 名稱中使用數組符號來設定數組 cookie,可以設定多個 cookie 作為數組單元,在腳本提取 cookie 時所有的值都放在一個數組中:

          例子 3. setcookie() 中使用數組的例子
          <?php
          // 設定 cookie
          setcookie("cookie[three]", "cookiethree");
          setcookie("cookie[two]", "cookietwo");
          setcookie("cookie[one]", "cookieone");

          // 刷新頁面后,顯示出來
          if (isset($_COOKIE['cookie'])) {
              foreach ($_COOKIE['cookie'] as $name => $value) {
                  echo "$name : $value <br />\n";
              }
          }
          ?>

          上例將輸出:

          three : cookiethree
          two : cookietwo
          one : cookieone

               注: 下面的一些 RFC 也具參考價值:RFC 2109 和 RFC 2695。

               注意 expire 參數的接受的是 Unix 時間戳,而不是日期格式 Wdy, DD-Mon-YYYY HH:MM:SS GMT,這是因為 PHP 在內部進行了轉換。

               expire 是與客戶端的時間相比較,和服務器時間可能不同。

               注: 向 Microsoft Internet Explorer 4 Service Pack 1 不能正確處理設定了 path 的 cookie。

               Netscape Communicator 4.05 及 Microsoft Internet Explorer 3.x 不能正確處理沒有設定 path 和 time 的 cookie。

          參見 header(),setrawcookie()

          posted on 2009-12-31 16:22 王生生 閱讀(662) 評論(0)  編輯  收藏 所屬分類: PHP
          森露2013新款豹紋打底衫 高領 女 長袖 修身長袖t恤女 加絨加厚冬 2013春秋新款女裝 潮修身大碼長袖小西裝外套女 韓版中長款小西裝 憂憂魚2013秋冬新款直筒褲女顯瘦長褲加絨黑色休閑褲修身西褲女褲
          主站蜘蛛池模板: 尚志市| 合江县| 石屏县| 龙里县| 建昌县| 平潭县| 府谷县| 天全县| 平塘县| 五莲县| 团风县| 龙门县| 上高县| 永城市| 濉溪县| 大埔区| 太保市| 台江县| 襄城县| 平陆县| 三原县| 日照市| 绥中县| 蓬安县| 张北县| 朝阳市| 怀化市| 县级市| 辽源市| 张家港市| 浮山县| 将乐县| 南安市| 凤阳县| 商都县| 南和县| 阿勒泰市| 阜康市| 无极县| 金平| 边坝县|