電子書籍の厳選無料作品が豊富!

こんにちは,よろしくお願いします。
ユーザ登録で,フォームに入力した内容をデータベースなどに登録する前に,確認するページを表示して,そこで内容を確認してもらって「登録」または,「戻る」ボタンを選択してもらうようなサイトを作ろうと思っています。
ただ,このフォームのページにちょっと細工をしてありまして,県名を選択すると,データベースから,ユーザが所属する会社名(事業所名)を引っ張ってきて,さらに,会社名を選択すると会社のメールアドレス等を表示し,間違っていれば訂正してもらうような内容のページにしたいと考えています。
概要としては,県名や会社名を入力するセレクト要素に,JavaScriptのonchangeイベントを設定して,自分自身にPOST送信して,データベースから住所等の必要なデータを引っ張ってきています。ですからフォームタグの,action ="<?php echo $_SERVER["PHP_SELF"] ?>"です。
データがそろったところで,「送信」(submit)ボタンのdisableを解除して,これをクリックすると,入力値をチェックし要件を満たしていれば,header送信して,セクション変数に値を代入して確認ページまで持ち運び表示しました。

そこで,確認ページから,確認前の入力フォームの状態に戻る方法について疑問を持っています。
IEの戻るボタンを押すと,「警告 : ページの有効期限切れ 要求したページは、フォームで送信された情報を使用して作成されました。このページは、もう利用できません。セキュリティ保護のため、情報は自動的には再送信されません。」と表示されます。さらにここでブラウザの「更新」ボタンを押すと,確認ページ表示前のフォームの状態に戻ります。(firefoxでは,戻るボタンを押すと警告メッセージが表示され,OKボタンを押すと,確認ページ表示前のフォームの状態に戻ります。)

そこで2つ質問があります。このような状態のとき,警告メッセージ等が出ないようにして,確認ページ表示前のフォームの状態に戻る方法を教えてください。
また,「セキュリティ保護のため…」という警告が気になります。このような場合,どのような危険性があるのでしょうか?教えてください。お願いします。

A 回答 (1件)

form を記述したところへ戻って、隠して送ったフラグを参照にして、処理を分けるという方法ではだめでしょうか?


送ったデータは正しければ、テキストボックス内に表示させ、間違いなら、警告するようにすればどうでしょうか?

<?php
if (!(isset($_post['flag']))){
//初めての時の処理・・・多分入力画面の表示だけ
} else { //二度目の時に
if ($_post['flag']==1){ //フラグの値によって処理を分ける
//処理1
} else {}
}
;
//処理
;
?>
<form method='post' action='このファイル'>
<input type='text' name='hoge'>
<!--<input type='hidden' name='flag' value='1'>-->
<!----いろんな入力および、submit---->
<?php //条件によってフラグの値を変える、処理も換える ?>
</form>
    • good
    • 0
この回答へのお礼

rakujinさんありがとうございました。
いろいろと試してみて,submitボタンを2つ設置して,valueの値によって条件分岐させることにしました。
貴重なご意見ありがとうございました。今後ともよろしくお願いします。

お礼日時:2008/06/25 20:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!