PHPでCookieを扱う

補足

setcookieメソッドで、$httponlyの引数がある。
これはHTTPクッキーの有効化無効化を切り替える。
trueならHTTPクッキーが有効化される。
HTTPクッキーはJavaScript経由ではアクセスできない。

下記3つのファイルを適宜設置して動かせばHTTPクッキーではない、クッキーの基本はわかるはず。

CookieTest1.html

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="UTF-8">
        <title>CookieTest1.html</title>
    </head>
    <body>
        <form method="post" action="CookieTest1.php">
            <label>英数字を入力して下さい。</label>
            <input type="text" name="txtbox">
            <input type="submit" value="送信">
        </form>
    </body>
</html>

CookieTest1.php

<?php
    // キー名:CookieTest
    // 値:CookieTest1.htmlのテキストボックスに入力された値。
    // クッキーの有効期限は30日後にセット。
    setcookie('CookieTest', $_POST['txtbox'], time() + 60 * 60 * 24 * 30);
?>

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="UTF-8">
        <title>CookieTest1.php</title>
    </head>
    <body>
        CookieTest1.htmlのテキストボックスに入力された英数字は、<br>
        <?php
            print ($_POST['txtbox'] . '<br>');
        ?>
        です。<br>
        <br>
        キー名:CookieTestで<br>
        <?php
            print ('値:' . $_POST['txtbox'] . '<br>');
        ?>
        をクッキーにセットしました。<br>
        <br>
        <br>
        <a href="CookieTest2.php">CookieTest2.htmlで結果を確認する</a>
    </body>
</html>

CookieTest2.php

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="UTF-8">
        <title>CookieTest2.php</title>
    </head>
    <body>
        <b>var_dump($_COOKIE)の結果<br></b>
        <?php var_dump($_COOKIE); ?>
        <br><br>
        <b>クッキーの内容をすべて表示<br></b>
        <?php
            foreach($_COOKIE as $key => $value)
            {
                print($key . ' : ' . $value . '<br>');
            }
        ?>
        <br>
        <b>CookieTestキーの値だけを表示<br></b>
        <?php
            print($_COOKIE['CookieTest']);
        ?>
    </body>
</html>

結果

コメント

タイトルとURLをコピーしました