回答編集履歴

1 sample

yambejp

yambejp score 65797

2017/02/21 11:31  投稿

POSTを再送信する前提のページなのでしょうか?
あえてやるならPOSTされたらセッションに押し込めて
完了ページに移動してしまうとかどうでしょうか?
完了ページに移動してしまうとかどうでしょうか?
# sample
補足見ましたがF5で再送信する意味がわかりません。
F5を押す人がいるのは別に否定しませんが、
ブラウザが再送信を拒否しているのが仕様やバグなら
どうしようもないと思いますが・・・
とりあえず、sampleだけ
- x.php
```PHP
<form method="post" action="y.php">
<input type="text" name="a" value="hoge">
<input type="submit" value="post">
</form>
<form method="get" action="y.php">
<input type="text" name="a" value="fuga">
<input type="submit" value="get">
</form>
```
- y.php
```PHP
<?PHP
session_start();
if(isset($_POST["a"])){
 $_SESSION["a"]=$_POST["a"];
 header("Location:z.php");
 exit;
}
header("Location:x.php");
exit;
?>
```
- z.php
```PHP
<?PHP
session_start();
print $_SESSION["a"];
?>
```
あとはz.php上で好きなだけF5を押せばいいと思います

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る