PHP関数を呼び出して電子メールを送信する単純なHTMLフォームボタンが2つあります。 1つのこと以外はすべて正常に動作します。いずれかのボタンをクリックしてレポートを送信した後、ページが更新されると、関数が再度呼び出されたように見え、ブラウザの更新ボタンを使用してユーザーがページを更新しても電子メールが再表示されます。PHP関数を呼び出すときにページが更新されると関数が繰り返される
ページが最新表示されている場合は、クリックされた最後のボタンからメールが再度送信されます。ボタン1をクリックしてページを更新すると、ボタン1の2つのレポートが表示されます。ボタン1をクリックしてボタン2をクリックすると、2番目のレポートだけが表示されます。ボタン#2を押してから#1をクリックすると、レポート#1だけが再び出ます。
このように、何個のボタンがクリックされても、ページを更新すると最後のボタンクリック(繰り返しのみ)が発生します。リクエストパラメータ(以下のコード)の設定を解除しようとしても、ページをリフレッシュすることによるリピートには影響しません。
ページリフレッシュ時に、最後にクリックされたボタンがセットとして表示されている理由と、unsetコマンドが機能しない理由がわかりません。
ありがとうございました。
if(isset($_REQUEST['email_this_weeks_report'])) {
unset($_REQUEST['email_last_weeks_report']);
#send email now email code for this week
}
if(isset($_REQUEST['email_last_weeks_report'])) {
unset($_REQUEST['email_last_weeks_report']);
#send email now email code for last week
}
<form>
<input class="ui-button ui-widget ui-corner-all" type="submit"
name="email_this_weeks_report" value="Email This Weeks Report Now" />
</form>
<form>
<input class="ui-button ui-widget ui-corner-all" type="submit"
name="email_last_weeks_report" value="Email Last Weeks Report Now" />
</form>
両方のif条件で同じことを解除しています –
_ "ページの最後のボタンがクリックされた理由を理解していません" _ - ブラウザが正確に同じ要求をもう一度...それはリフレッシュが何を意味するのか_means_です。 _ "と、unsetコマンドがなぜ動作していないのか" _ - なぜなら、まずは無意味だからです。フォームを送信するときに最初に設定を解除することも同じです。つまり、その_did_が思ったとおりに機能すると、機能が最初から壊れることになります。 _identification_である2つの要求の間で_differentiate_を試みています...もちろん、動作できません。 – CBroe