予約フォームでリロードを実施すると、メールが二重送信されてしまいます。
入力画面⇒確認画面⇒確認画面で送信ボタンを押す⇒完了画面+完了メール送信
という遷移です。
現在、完了画面でブラウザ更新(F5)を行うとメールが何度も送信されてしまいます。
完了画面でセッションを作成し、リロードしたらセッションで判定を行い、トップページへリダイレクトさせたいと思ったのですが、判定が動作しません。
php
1 <?php 2 if ($error_flg !== false) { 3 ?> 4 <div align="center"> 5 <h1>入力にエラーがあります。下記をご確認の上「戻る」ボタンにて修正をお願い致します。</h1> 6 <br/> 7 <br/> 8 <div style="color:red"><?php echo $error_msg; ?></div> 9 <br/> 10 <br/> 11 <input type="button" value=" 前画面に戻る " onClick="history.back()"> 12 </div> 13 <?php 14 } else { 15 if(isset($_SESSION['reloadno'])){ 16 header('location: /'); 17 exit(); 18 }else{ 19 $_SESSION['reloadno'] = "リロード判定"; 20 print_r($_SESSION); 21 echo 'リロードしてない'; 22 } 23 ?> 24 <h1>ご予約を承りました</h1>
実際に表示される画面
Array ( [reloadno] => リロード判定 ) リロードしてない
ご予約を承りました
セッション判定の書き方に不備があると思うのですが、分からない状況です。
お力を貸していただきたいです。
回答2件
あなたの回答
tips
プレビュー