ホームページ >バックエンド開発 >PHPチュートリアル >PHP の Cookie_PHP チュートリアル
用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 = 'ジェフ';
$y2k = mktime(0 、0、 0,1,1,2000);
setcookie('名前') 、$name、 $y2k);
?>
setcookie() の次の 2 つのパラメータは、Cookie を読み取るプログラムのドメインとディレクトリ パスを制御できます。デフォルト設定では、Cookie を送信したサーバーと同じディレクトリ構造内にあり、同じレベル以下のページのみがその値を読み取ることができます。これは、ネットワーク セキュリティを考慮したためです。ただし、「www.domain.com」だけでなく「other.domain.com」のアカウントをお持ちで、そのアカウントで ~/myhome ディレクトリからのページの処理が許可されている場合は、setcookie() を次のように変更する必要があります。
setcookie
('名前', 'ジェフ', $y2k, '~/myhome', '.ドメイン.com');
?>
Cookieの削除は非常に簡単で、setcookie()にCookie名を渡すだけでPHPが削除してくれます。
setcookie
('名前');
?>
setcookie
('name', 'jeff');echo
「皆さんこんにちは!」;
?> ;
$today
= mktime(12,0,0,6 、25、 1999);エコー
'ここにあります'。日付('g:i:s a, F d, Y',$today );echo
'';echo
'GMT では '.gmdate('g:i:s a, F d, Y', $今日);
?>