① php怎樣讀取cookie數組的值
setcookie("userinfo['name']","111",480);
為什麼不修改為:
setcookie("userinfo_name","111",480);
這樣一切都變得非常簡單。
setcookie("userinfo['name']","111",480);
setcookie("userinfo['purview']","222",480);
setcookie("userinfo['OSKEY']","333",480);
如上程序,php怎麼讀取數組的信息?例如,我要讀取userinfo['name']中的信息,你試試看:
echo $_COOKIE["userinfo['name']"];
② php如何將一個數組保存在cookie裡面
先用serialize序列化數組,再存入COOKIE,讀出來時用unserialize得到原來的數組
代碼:
//存入
$arr = array(1,2,3);
$arr_str = serialize($arr);
setcookie("a",$arr_str);
//取出
$arr_str = $_COOKIE['a'];
$arr = unserialize($arr_str);
2. 設定多鍵值cookie,注意必須給鍵值
$arr = array(1,2,3);
setcookie("a[0]", $arr[0]);
setcookie("a[1]", $arr[1]);
setcookie("a[2]", $arr[2]); 結果:數組所有元素都存到了。
數組長度 :3
Array ( [0] => 1 [1] => 2 [2] => 3 )
③ PHP的cookie可以存儲數組和對象嗎
cookie只能是string,key=value;這種格式
如果要存,可以json_encode後存
④ php怎麼用cookie存儲多維數組
方法一:先用serialize序列化數組,再存入COOKIE
,讀出來時用unserialize得到原來的數組
//存入
$arr
=
array(1,2,3);
$arr_str
=
serialize($arr);
setcookie("a",$arr_str);
//取出
$arr_str
=
$_COOKIE['a'];
$arr
=
unserialize($arr_str);
方法二:設定多鍵值cookie,注意必須給鍵值
$arr
=
array(1,2,3);
setcookie("a[0]",
$arr[0]);
setcookie("a[1]",
$arr[1]);
setcookie("a[2]",
$arr[2]);
⑤ 如何使用PHP操作cookie
PHP setcookie() 函數向客戶端發送一個 HTTP cookie。cookie 是由伺服器發送到瀏覽器的變數。cookie 通常是伺服器嵌入到用戶計算機中的小文本文件。每當計算機通過瀏覽器請求一個頁面,就會發送這個 cookie。cookie 的名稱指定為相同名稱的變數。例如,如果被發送的 cookie 名為 "name",會自動創建名為 $user 的變數,包含 cookie 的值。
必須在任何其他輸出發送前對 cookie 進行賦值。如果成功,則該函數返回 true,否則返回 false。
setcookie(name, value, expire, path, domain, secure)
name 必需。規定 cookie 的名稱。
value 必需。規定 cookie 的值。
expire 可選。規定 cookie 的有效期。
path 可選。規定 cookie 的伺服器路徑。
domain 可選。規定 cookie 的域名。
secure 可選。規定是否通過安全的 HTTPS 連接來傳輸 cookie。
可以通過 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 來訪問名為 "user" 的 cookie 的值。在發送 cookie 時,cookie 的值會自動進行 URL 編碼。接收時會進行 URL 解碼。如果不需要這樣,可以使用 setrawcookie() 代替。
程序1:
設置並發送 cookie:
1 <?php
2 $value = "my cookie value";
3 // 發送一個簡單的 cookie
4 setcookie("TestCookie",$value);
5 ?>
01 <html>
02 <body>
03 ...
04 ...
05 <?php
06 $value = "my cookie value";
07 // 發送一個 24 小時候過期的 cookie
08 setcookie("TestCookie",$value, time()+3600*24);
09 ?>
10 <html>
11 <body>
程序2:
檢索 cookie 值的不同方法:
01 <html>
02 <body>
03 <?php
04 // 輸出個別的 cookie
05 echo $_COOKIE["TestCookie"];
06 echo "<br />";
07 echo $HTTP_COOKIE_VARS["TestCookie"];
08 echo "<br />";
09 // 輸出所有 cookie
10 print_r($_COOKIE);
11 ?>
12 </body>
13 </html>
程序輸出:
1 my cookie value
2 my cookie value
3 Array ([TestCookie] => my cookie value)
程序3:
通過把失效日期設置為過去的日期/時間,刪除一個 cookie:
1 <?php
2 // 把失效日期設置為一小時前
3 setcookie ("TestCookie", "", time() - 3600);
4 ?>
程序4:
創建一個數組 cookie:
01 <?php
02 setcookie("cookie[three]","cookiethree");
03 setcookie("cookie[two]","cookietwo");
04 setcookie("cookie[one]","cookieone");
05 // 輸出 cookie (在重載頁面後)
06 if (isset($_COOKIE["cookie"]))
07 {
08 foreach ($_COOKIE["cookie"] as $name => $value)
09 {
10 echo "$name : $value <br />";
11 }
12 }
13 ?>
程序輸出:
1 three : cookiethree
2 two : cookietwo
3 one : cookieone
程序5:
view sourceprint?
1 /**
2 * 01.cookie設置
3 * */
4 function ssetcookie($var, $value, $life=0) {
5 global $_SGLOBAL, $_SC, $_SERVER;
6 setcookie($_SC['cookiepre'].$var, $value, $life?($_SGLOBAL['timestamp']+$life):0, $_SC['cookiepath'],$_SC['cookiedomain'], $_SERVER['SERVER_PORT']==443?1:0);
7 }
⑥ PHP的cookie問題
發錯地方了!
PHP中使用cookie
1、設置Cookie
PHP用SetCookie函數來設置Cookie。必須注意的一點是:Cookie是HTTP協議頭的一部分,用於瀏覽器和伺服器之間傳遞信息,所以必須在任何屬於HTML文件本身的內容輸出之前調用Cookie函數。
SetCookie函數定義了一個Cookie,並且把它附加在HTTP頭的後面,SetCookie函數的原型如下:
int
SetCookie(string
name,
string
value,
int
expire,
string
path,
string
domain,
int
secure);
除了name之外所有的參數都是可選的。value,path,domain三個參數可以用空字元串代換,表示沒有設置;expire
和
secure兩個參數是數值型的,可以用0表示。expire參數是一個標準的Unix時間標記,可以用time()或mktime()函數取得,以秒為單位。secure參數表示這個Cookie是否通過加密的HTTPS協議在網路上傳輸。
當前設置的Cookie不是立即生效的,而是要等到下一個頁面時才能看到.這是由於在設置的這個頁面里Cookie由伺服器傳遞給客戶瀏覽器,在下一個頁面瀏覽器才能把Cookie從客戶的機器里取出傳回伺服器的原因。
在同一個頁面設置Cookie,實際是從後往前,所以如果要在插入一個新的Cookie之前刪掉一個,必須先寫插入的語句,再寫刪除的語句,否則可能會出現不希望的結果。
來看幾個例子:
簡單的:
SetCookie("MyCookie",
"Value
of
MyCookie");
帶失效時間的:
SetCookie("WithExpire",
"Expire
in
1
hour",
time()+3600);//3600秒=1小時
什麼都有的:
SetCookie("FullCookie",
"Full
cookie
value",
time()+3600,
"/forum",
".phpuser.com",
1);
這里還有一點要說明的,比如站點有幾個不同的目錄,那麼如果只用不帶路徑的Cookie的話,在一個目錄下的頁面里設的Cookie在另一個目錄的頁面里是看不到的,也就是說,Cookie是面向路徑的。實際上,即使沒有指定路徑,WEB伺服器會自動傳遞當前的路徑給瀏覽器的,指定路徑會強制伺服器使用設置的路徑。解決這個問題的辦法是在調用SetCookie時加上路徑和域名,域名的格式可以是「www.phpuser.com」,也可是「.phpuser.com」。
SetCookie函數里表示value的部分,在傳遞時會自動被encode,也就是說,如果value的值是「test
value」在傳遞時就變成了「test%20value」,跟URL的方法一樣。當然,對於程序來說這是透明的,因為在PHP接收Cookie的值時會自動將其decode。
如果要設置同名的多個Cookie,要用數組,方法是:
SetCookie("CookieArray[]",
"Value
1");
SetCookie("CookieArray[]",
"Value
2");
或
SetCookie("CookieArray[0]",
"Value
1");
SetCookie("CookieArray[1]",
"Value
2");
2、接收和處理Cookie
PHP對Cookie的接收和處理的支持非常好,是完全自動的,跟FORM變數的原則一樣,特別簡單。
比如設置一個名為MyCookier的Cookie,PHP會自動從WEB伺服器接收的HTTP頭里把它分析出來,並形成一個與普通變數一樣的變數,名為$myCookie,這個變數的值就是Cookie的值。數組同樣適用。另外一個辦法是引用PHP的全局變數$HTTP_COOKIE_VARS數組。
分別舉例如下:(假設這些都在以前的頁面里設置過了,並且仍然有效)
echo
$MyCookie;
echo
$CookieArray[0];
echo
count($CookieArray);
echo
$HTTP_COOKIE_VARS["MyCookie"];
就這么簡單。
3、刪除Cookie
要刪除一個已經存在的Cookie,有兩個辦法:
一是調用只帶有name參數的SetCookie,那麼名為這個name的Cookie將被從關系戶機上刪掉;另一個辦法是設置Cookie的失效時間為time()或time()-1,那麼這個Cookie在這個頁面的瀏覽完之後就被刪除了(其實是失效了)。
要注意的是,當一個Cookie被刪除時,它的值在當前頁在仍然有效的。
4、使用Cookie的限制
首先是必須在HTML文件的內容輸出之前設置;
其次不同的瀏覽器對Cookie的處理不一致辭,且有時會出現錯誤的結果。
第三個限制是在客戶端的。一個瀏覽器能創建的Cookie數量最多為30個,並且每個不能超過4KB,每個WEB站點能設置的Cookie總數不能超過20個。
⑦ 在php中哪個變數數組總是包含所有客服端發出的cookies
全局變數 $_COOKIE ,通過 HTTP Cookies 方式傳遞給當前腳本的變數的數組,始終包含每個HTTP請求中客戶端攜帶的cookie數據
⑧ 如何將php的cookie轉化成對象或數組
$arr = array(0=>array('id'=>1,'name'=>'aaa'));
$arr = json_encode($arr);
$arr = json_decode($arr);
var_mp($arr);
試試,你就知道了
⑨ php如何創建cookie數組
$array=array('a','b');
setcookie('array',$array,time() + 3600);
var_mp($_COOKIE['array']);
設置$_COOKIE['array'],保存時間為3600秒
⑩ php cookie 可以存數組嗎
可以的。
先用serialize序列化數組,再存入COOKIE,讀出來時用unserialize得到原來的數組
代碼:
//存入
$arr = array(1,2,3);
$arr_str = serialize($arr);
setcookie("a",$arr_str);
//取出
$arr_str = $_COOKIE['a'];
$arr = unserialize($arr_str);
2. 設定多鍵值cookie,注意必須給鍵值
$arr = array(1,2,3);
setcookie("a[0]", $arr[0]);
setcookie("a[1]", $arr[1]);
setcookie("a[2]", $arr[2]); 結果:數組所有元素都存到了。
數組長度 :3
Array ( [0] => 1 [1] => 2 [2] => 3 )