首頁  >  文章  >  後端開發  >  PHP中的cookie_PHP教程

PHP中的cookie_PHP教程

WBOY
WBOY原創
2016-07-21 16:00:06828瀏覽

用PHP来设置并读取cookie是一件极其——我们敢说吗?——简单的事情。我们并不希望大力鼓吹cookie,不过它们的确既重要又实用。它们是解决某些问题时唯一适用的工具。

  要创建并修改一个 cookie,可使用PHP函数setcookie()。取决于想对cookie进行控制的程度,及谁可以读取cookie的值,setcookie()最多可有六个参数。

  设置cookie最简单的方式如下:

setcookie('name', 'bret');
?>

  然后,在用户退出前,接下来使用此浏览器查看的站点中每一个页面,都会有一个值为“bret”的变量$name,并且很容易通过PHP 对其进行访问。由于其生存期是一次用户连结,此类cookie被称为session cookie。

  如果希望用户关闭其浏览器后,仍保留此cookie,则必须传递第三个参数给setcookie()函数,即设定此cookie的有效日期。由于PHP的背景完全源于Unix的思想,这个有效期限需要以从1970年1月1日起算的总秒数来代表。如果作为Unix程序员,这种算法对你而言可能是合情合理的。但如果来自Windows或Macintosh阵营,你可能只能摇头叹息,无法理解那些古怪的Unix家伙们。

  不过无需害怕。PHP提供一个很好用的函数mktime()。你只要按顺序传送给mktime()你希望表示的小时,分钟,秒数,月份,日期,及年份,mktime()就会返回该日期自1970年1月1日的总秒数。因此,如果需要模拟 Y2K 问题:

$y2k = mktime(0,0,0,1,1,2000);
setcookie('name', 'bret', $y2k
);
?>

  现在,你的cookie将会在2000年失效。

  如果需要更新cookie以让其储存新值,只需要将其原值覆盖即可。因此,即使你已经在之前的页面中刚刚发送cookie,仍可以将你的名字改为“jeff”。

$y2k = mktime(0,0,0,1,1,2000);
setcookie('name', 'jeff', $y2k
);
?>

  注意这样做并不会改变变量$name的值。在页面载入的时候,其值就已经确定。如果希望总是同时确定二者,可以编写如下代码:

$name = 'jeff';
;$y2k = mktime(0(0( 🎜>,0,1,
1,
2000);setcookie('name'🎜>'name, $name
, $y2k
);

);


);
););?   setcookie()的下兩個參數可以控制讀取cookie的程式的域及目錄路徑。預設設定為僅在與送出cookie的伺服器相同且在同級或以下的目錄結構內的頁面才可以讀取其值。這是出於網路安全方面的考量。然而,如果你有一個帳號“www.domain.com”但同時也是“other.domain.com”,且帳戶允許從~/myhome目錄處理頁面,則應更改setcookie()如下: setcookie(
'name'
,
,

$y2k

,

'~/myhome',
'.domain.com' );
?>
  我們還未使用過的setcookie()最後一個參數是設定cookie只傳送給實行諸如SSL的安全連接的Web伺服器。要使用此功能,將第六個值設為1。

  刪除cookie非常簡單,只需簡單地將cookie的名稱傳送給setcookie(),PHP就會刪除掉。

setcookie
('name''name');
);

);
);

);


);
?>   最後還有一個關於使用cookie的重要事項。由於cookie與HTTP的特定運作方式,你必須在你輸出任何文字前,傳送出所有的cookie。否則PHP會給予警告,cookie也不會被傳送。因此,這樣做是正確的方法: setcookie('name', );echo "Hello Everyone!";;
? >   以下是錯誤地: $today =
mktime
(,
0
,
0,6, 25,1999
);
echo
'Here it it it it it> .
date

('g:i:s a, F d, Y',$today);echo '';echo ;echo ;echo ;echo ;echo 'In GMT it is '.gmdate('g:i:s a, F d, Y',$today);?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/317200.htmlTechArticle用PHP來設定並讀取cookie是一件極度-我們敢說嗎? ——簡單的事。我們不希望大力鼓吹cookie,不過它們的確既重要又實用。它們是解...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn