
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ランキング
-
VBAで重複チェックの仕方を教え...
-
Excel VBA:特定の文字列以降(...
-
findstrのerrorlevel
-
wordの差し込み印刷で文字...
-
shシェルスクリプト 空白行の...
-
「取得先」という表現について
-
classの再定義エラーについて
-
EXCEL、マクロ-改ページ行番号...
-
【C#】DataGridViewの最大列数...
-
XMLのタグの有無をPHPで判定し...
-
Smarty変数の値をJavascript変...
-
VB.NETでボリュームを取得・設...
-
ps3で久しぶりにCDの音楽情報取...
-
ExcelVBAで、FileSystemObject...
-
複数ページでセッションを使わ...
-
Google scholarがひらけなくな...
-
開始と終了を指定して、その間...
-
webサイトの参考資料:サイト名 ...
-
(Win32)ファイルパスから物理ド...
-
コンビニで住民票を取得した場...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IFRAME内PHPのセッション変数取...
-
PHPで値を保持する方法
-
asp.netでのセッションを使用し...
-
VBAで重複チェックの仕方を教え...
-
フォームを使わずにPOST送信す...
-
【Java】投稿完了画面リロード...
-
php history.back()の戻るボタ...
-
セッションを使用したページ遷移
-
HTMLエスケープ処理とデーター...
-
PHP+MySQLからHTMLページを自動...
-
POSTで受け渡したものを保存し...
-
飛び先のランダムURLの取得方法...
-
cURL関数を使用したphpからのpo...
-
ログイン画面から入って、「戻...
-
BBSにダブルクォーテーションを...
-
アクセスでのデータ保存について。
-
ブラウザの戻るボタンで重複登...
-
ブラウザバックしてもチェック...
-
htmlspecialcharsについて
-
閉じるボタン「×」を制御したい
おすすめ情報