[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>