ホームページ >バックエンド開発 >PHPチュートリアル >PHP の Cookie_PHP チュートリアル

PHP の Cookie_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:00:06862ブラウズ

用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');
?>

まだ使用していない setcookie() の最後のパラメータは、SSL などの安全な接続を実装する Web サーバーにのみ Cookie が送信されるように設定するものです。この機能を使用するには、6 番目の値を 1 に設定します。

Cookieの削除は非常に簡単で、setcookie()にCookie名を渡すだけでPHPが削除してくれます。

setcookie
('名前');
?>

最後に、Cookieの使用に関して注意すべき重要な点が1つあります。 Cookie が HTTP で動作する仕組みのため、テキストを出力する前にすべての Cookie を送信する必要があります。そうしないと、PHP が警告を出し、Cookie は送信されません。したがって、これが正しい方法です:

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', $今日
);
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/317200.html技術記事 PHP を使用して Cookie を設定および読み取ることは、あえて言えば非常に難しいことです。 - 簡単なこと。 Cookie について説教するつもりはありませんが、Cookie は重要で便利です。それらは解決策です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。