[PHP] 09 POSTリクエストでsubmitしたformの内容を取得する cookie

[M1 Mac, Big Sur 11.7.2, PHP 8.2.1, MySQL 8.0.31]

submitしたformの内容を次ページに表示させても数秒で消えてしまいます。

そこでfilter_inputメソッドで取得した変数をcookieに一旦格納してから、使用時にこれを取り出しました。ただcookieに入れてしまうとfilter_inputメソッドで取得した際の変数名($dbなど)も問題なく使えるようになります。

なぜこのようなことになるのかよく分かりません。ガベージコレクション絡みでしょうか。

$db = filter_input(INPUT_POST, 'db');
$field = filter_input(INPUT_POST, 'field');
$key = filter_input(INPUT_POST, 'key');

setcookie('db', $db);
setcookie('field', $field);
setcookie('key', $key);

if(isset($_POST['button2'])){
    $db2 = $_COOKIE["db"];
    $field2 = $_COOKIE["field"];
    $key2 = $_COOKIE["key"];

    # MySQLにログイン
    $conn = new mysqli('localhost', 'root', 'root');
    if (!$conn){
        die("MySQL接続に失敗しました");
    } else {
        // print 'MySQL接続に成功しました';
    }

    <変数はクエリで使用>

<中略>

<table id="search_table" border="2">
        <tr>
            <td>データベース</td>
            <td id="input1-2" width="180" name="db2"><?php echo $db; ?></td>
        </tr>
        <tr>
            <td>フィールド</td>
            <td id="input2-2" width="180" name="field2"><?php echo $field; ?></td>
        </tr>
        <tr>
            <td>検索語</td>
            <td id="input3.2" width="180" name="key2"><?php echo $key; ?></td>
        </tr>
</table>