PHPでcookieを扱う際の方法をメモ。
cookieの保存と取得
cookieの処理は、ブラウザに何らかの出力を行う前にコールする必要があります。
そのため、<!DOCTYPE html>より前にcookieを扱う処理を記述します。
保存ページ
「setcookie(保存名, 保存する値)」の形で保存できます。
<?php
setcookie('name1', '青葉');
?>
取得ページ
「$_COOKIE[保存名]」の形で取得できます。
isset()を使ってcookieが保存されているかを確認してから取得するようにします。
<?php
if(isset($_COOKIE['name1'])) {
$name1 = $_COOKIE['name1'];
} else {
$name1 = 'ありません。';
}
?>
取得ページ(body内)
<p>name1の値: <?php echo $name1; ?></p>
cookieの有効期限の指定
cookieの有効期限はsetcookie()の第三引数に設定できます。
保存ページ
有効期限を30秒間にしてみます。
<?php
setcookie('name2', 'ねね', time() + 30);
?>
取得ページ
<?php
if(isset($_COOKIE['name2'])) {
$name2 = $_COOKIE['name2'];
} else {
$name2 = 'ありません。';
}
?>
取得ページ(body内)
<p>name2の値: <?php echo $name2; ?></p>
cookieの削除
cookieの削除する場合、setcookie()の有効期限を過去にすると削除できます。
保存ページ
<?php
setcookie('name3', 'ほたる');
?>
取得ページ
<?php
if(isset($_COOKIE['name3'])) {
$name3 = $_COOKIE['name3'];
} else {
$name3 = 'ありません。';
}
?>
取得ページ(body内)
<p>name3の値: <?php echo $name3; ?></p>
削除ページ
<?php
setcookie('name3','',time() - 1);
?>
【参考サイト】
コメントが承認されるまで時間がかかります。