##参考書籍
よくわかるPHPの教科書 PHP7対応版
##他記事リンク
##クッキー(Cookie)
ログイン画面などで次回アクセス時に自動的に入力された状態にするなどのデータベースには保存しないけれど中長期的に保存しておきたいデータなどに使用する機能です。ブラウザを起動しているときだけ保存したいデータにはセッションを使います。
###データを保存する
クッキーにデータを保存するにはsetcookie関数を使います。
setcookie(クッキー名, 値, 保存秒数, フォルダ, ドメイン, セキュア接続のみ, HTTPのみの接続);
3番目の引数まで指定すれば、関数は使用することができます。
4番目以降の引数は、セキュリティに関する設定です。
- フォルダ: ここで設定したフォルダ配下でのみ有効になります
- ドメイン: ここで設定したドメイン配下でのみ有効になります
- セキュア接続のみ: SSL接続でのみ有効になります
- HTTPのみの接続: JavaScriptなどからはアクセスできなくなります
<?php
$value = '変数に保存した値です';
setcookie('save_message', 'Cookieに保存した値です', time() + 60 * 60 * 24 * 14);
?>
<p>Cookieに値を保存しました。次のページに移動してみましょう。
<a href="/sample24/after.php">page02へ</a>
###データを取得する
保存した値を取得するには$_COOKIE関数を使います。
$_COOKIE[クッキー名];
変数の値: <?php print($value); ?>
Cookieの値: <?php print($_COOKIE['save_message']); ?>
##セッション(Session)
ログイン後にログイン中であることを保存するなどのブラウザを開いている間だけデータを保存しておくための機能です。ブラウザを閉じても利用する場合には、クッキーを使います。
###データを保存する
セッションは保存する場合も取得する場合も、session_start関数を先に使います。
セッションを保存する場合には、$_SESSION関数を使います。
session_start()
$_SESSION[セッション名] = 値
<?php
session_start();
$_SESSION['session_message'] = '値をセッションに保存しました';
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>セッション</title>
</head>
<body>
<pre>
セッションに値を保存しました。次のページに移動してみましょう。» <a href="after.php">afterページへ</a>
</pre>
</body>
</html>
###データを取得する
セッションに保存してある値を取得する場合も保存する場合と同様に使います。
session_start();
$_SESSION[セッション名]
<?php session_start(); ?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>セッション</title>
</head>
<body>
<pre>
セッションの値: <?php print($_SESSION['session_message']); ?>
<?php session_unset(); ?>
</pre>
</body>
</html>
###データを削除する
今回は使用していませんが、明示的にセッションに保存されているデータを削除する場合にはunset関数を使用します。
unset($_SESSION[セッション名]);