
phpにて在庫記録を作成していますが、データ入力後の確認画面にて<input type="button" onclick="history.back()" value="戻る">のボタンを押下すると、mysqlにデータが登録されてしまいます。
データ確認画面にて入力確定ボタン<form method="post" action="k-thanks.php"><input name="nyryoku1" type="submit" value="入力確定"></form>の『入力確定』ボタンを押下した時だけにDBに値を登録したいです。
ちなみに、データ確認画面にて、『戻る』ボタンを押下後、値を修正し、またデータ確認画面にて『入力確定』ボタンを押下すると、修正前と修正後のデータ2つがDBに登録されてしまいます。
『戻る』ボタンでDBに値が登録されないようにする方法や、何かしらのヒント、アドバイスをいただけますようお願い致します。
No.1ベストアンサー
- 回答日時:
データ登録の基本はページ分け
入力ページ→確認ページ→登録ページ→登録完了ページ
という構成にすれば、登録完了ページからもどるのは確認ページなので
二重登録は発生しない
・入力ページ
データを入力、確認ページにはPOSTでデータ送信
・確認ページ
登録してよいか、わるいかだけジャッジする。
入力ページからもらったデータはセッションで保存する
・登録ページ
確認ページからもらったセッションデータを利用して登録する
登録に成功した場合は、登録完了ページへ
失敗した場合は登録エラーページへ
必要であればセッションデータをクリアする
ただし・・・history.backを元にページを作るのはあまりお勧めできない
yambejpさん。いつもいつも分かりやすい説明ありがとうございます!!
考えすぎて頭が固くなってしまいました・・・。
もし、よろしければ簡単で良いので、history.backを使用するのはおすすめ出来ない理由をご教示いただけますでしょうか?
まだまだ、勉強不足で申し訳ないです。
No.2
- 回答日時:
Javascriptのhistory.back()を使用して問題ない仕様なのでしょうか?
戻る先のページはサーバ側のプログラムが更にその前のページでの入力内容を受け取って処理して生成しているページはありあませんか?
また、最終的な処理結果を格納するMySQL上のテーブルのキーは画面上で利用者が入力したり、あるいはプログラムが決めて登録前のページに表示したりしているデータ項目ではなく、最終的にテーブルへのデータ登録を行うプログラムが自動生成する項目ということでしょうか?
二重に登録されるという事はそのように見えます。
そして「作成中の機能としてそれは本当に適当なのか?」とも思います。
zircon3さん回答いただきありがとうございます!!
結果としては、SQLでテーブルにデータを登録するページを分けることで大丈夫でした!!
勉強がてら入出庫の記録簿をwebページで作ろうと思っていて、phpとSQL初心者なので、「Javascriptのhistory.back()を使用して問題ない仕様」の理由が分からないです・・・。
参考書にはhistory.back()での記載だったので・・・。
色々と勉強しないとですね・・・。
また、質問すると思いますので、その際にはご返信いただくと嬉しいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
こんなことはPHPで可能なのでし...
-
テキストボックスの値の保持
-
PHPでの画像の形式の変換
-
VBScriptでのWEBページのソース...
-
VB.NETでボリュームを取得・設...
-
Dosブロンプトでtabを出力したい
-
PHP 指定した期間だけ表示した...
-
DTOとEntityの差は何ですか。
-
PHP4からPHP5へ移行した際、セ...
-
WordでExcelデータを差込...
-
昨日の日付を取得するVBscript
-
VBブラウザに表示されているテ...
-
ミュージックのアートワークを...
-
C言語で地図を描きたい
-
文字列から期間算出 09-12 12-12
-
4桁の乱数の発生
-
ログイン画面をはさんだ後、自...
-
evalの中でNULLを使用して比較...
-
checkboxでの複数選択削除がわ...
-
ちょっと複雑なURL分解について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IFRAME内PHPのセッション変数取...
-
PHPで値を保持する方法
-
asp.netでのセッションを使用し...
-
VBAで重複チェックの仕方を教え...
-
フォームを使わずにPOST送信す...
-
【Java】投稿完了画面リロード...
-
php history.back()の戻るボタ...
-
セッションを使用したページ遷移
-
HTMLエスケープ処理とデーター...
-
PHP+MySQLからHTMLページを自動...
-
POSTで受け渡したものを保存し...
-
飛び先のランダムURLの取得方法...
-
cURL関数を使用したphpからのpo...
-
ログイン画面から入って、「戻...
-
BBSにダブルクォーテーションを...
-
アクセスでのデータ保存について。
-
ブラウザの戻るボタンで重複登...
-
ブラウザバックしてもチェック...
-
htmlspecialcharsについて
-
閉じるボタン「×」を制御したい
おすすめ情報