完了画面でリロードすると内容が重複して投稿されてしまう。
回避方法としてはheader()関数でリダイレクトさせる方法です。
ページの構成としては下記の様な形です。
index.php・・・入力フォームを記述しているファイル
output.php・・・ファイルの書き込み処理と投稿一覧を表示しているファイル
■index.php
<form action="output.php" method="post"> <input type="text" name="message"> <input type="submit" name="datepost" value="投稿"> </form>
■output.php
<?php $file = 'board.txt'; if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (file_exists($file)) { $board = json_decode(file_get_contents($file)); } $board[] = $_REQUEST['message']; file_put_contents($file, json_encode($board)); foreach ($board as $message) { echo $message.'<hr>'; } header('Location:http://192.168.33.10:8000/lessonform/output.php'); } ?>
上記コードで解決になりません。
この状態で「$_SERVER['REQUEST_METHOD']」するとPOSTのままになっております。
header関数の場所を変更してもうまくいきませんでした。
よろしければアドバイスなど頂けると。。。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。