f5を押したときにフォームが再送信されるのを回避するために、サイトに次のコードを(phpとsmartyを使用して)持っています。
if ($this->bln_added == false) {
if (isset($_POST['submit'])) {
$this->obj_site->obj_smarty->assign('title', $_POST['tas_heading']);
$this->obj_site->obj_smarty->assign('desc', $_POST['tas_description']);
}
} else {
$this->obj_site->obj_smarty->assign('title', '');
$this->obj_site->obj_smarty->assign('desc', '');
unset($_POST);
}
デフォルトでは bln_added は false ですが、フォームが正常に送信されると true に変わります。smarty 変数の title と desc は、ユーザー エラーが発生し、入力内容を変更する必要がある場合にフォームのコンテンツを保持するためにテンプレートで使用されます。
フォームが正常に送信されると、bln_added = true が設定されるため、コードの 2 番目のビットはフォーム フィールドをクリアするだけでなく、$_POST も空にする必要があります。しかし、f5 を押すと、投稿データはまだそこにあります。
何か案は?