No.2ベストアンサー
- 回答日時:
確認画面がはさんである以上、最初の入力がされたときに値が正しいか検証をして、その後、確認画面に含まれた値が正しいか再検証を行う必要は必ずあります。
(hiddenで含まれた値の書き換え、cookieで与えた場合でも書き換えがありうるし、sessionで引いた場合でも万が一ということもあるので。)そうなると、それらの値のチェックを関数なり検証用クラスなりを使って処理すると思うのですが、
index.php⇒confirm.php⇒thanks.php
と遷移する場合、POST先であるconfirm.phpとthanks.phpで同じ検証用プログラムを走らせる必要がある上に、値が間違っていた場合は、confirm.phpでは、index.phpに記述したHTMLをまた含める必要があることを考えると、tom223さんの仰っているようにアクセスされるPHPファイルは一つにしてあったほうがやりやすい気はします。
-------index.php--------
<?php
if(strtoupper($_SERVER['REQUEST_METHOD'] == 'POST')){
$flag = validate($_POST); //何らかの入力された文字が正しいかノチェック
if(isset($_POST['confirm']) && $flag == true){ //<input type="submit" name="confirm" />が叩かれた場合
require_once '../template/confirm.html'; //入力項目確認画面
}elseif(isset($_POST['submit']) && $flag == true){ //<input type="submit" name="submit" />が叩かれた場合
require_once '../template/thanks.html'; //登録完了画面
}else{
require_once '../template/index.html';
}
}else{
require_once '../template/index.html'; //HTMLファイル(通常のフォームのもの)を読み出す
}
?>
簡単ですが、こんな感じでしょうか。
回答ありがとうございます。
やはりアクセスするファイルは1つにするのが良い感じなんですね。
恥ずかしながら入力チェックは確認画面でしか行ってませんでした。
これを機に最後の処理の前にもチェックするよう作成する事にします。
No.4
- 回答日時:
訂正
ワークフレーム
↓
フレームワーク
後既存のフレームワークを使わないまでも自分で使いやすい枠組み作っておけば新規で作る場合も作業的には楽になります。
作成の都度新たに作っていく手間を考えると
0から始めるのと3くらいから始められるのとでは初期の枠組み作業だけでも効率が違います。
また機能を関数やクラスで分けて構築すれば他のシステムでも同じ物が使えますから楽です。
度々のアドバイス有り難うございます。
現在前回頂いた回答を参考に作業させて頂いています。
その作業過程でご指摘頂いたMVCのモデルを使用しようと思い立ったのですが又新たな壁にぶつかってしまいました。
本質問とは趣旨がずれてしまうので、本質問とは別に質問させて頂こうと思うのですが、もしよろしければご回答お願いできますでしょうか?
何より、本質問については非常に参考になりました。
ありがとうございました。
No.3
- 回答日時:
>枠組みはどのフォームも似たり寄ったりなので読み込むライブラリとテンプレートを変えるだけで使い回せそうですね。
参考になります。
まぁ簡易的にMVCぽいものを作っている感じですね。
でこの考えをもっと突き詰めて構築していくとワークフレームって感じになるでしょう。
No.1
- 回答日時:
・プログラムは基本的に一つにまとめる。
>入力→確認→確定
とあった場合、
入力は1
確認は2
確定は3
で「?p=1」などとやる。
でそれをそれぞれ分ける処理がメインとして置いておいて
処理の中身そのものは関数やクラスで別にしておく。
でフォームなどのHTMLはテンプレートエンジンをして独立させておく。
って使い方が自分は多いですかね。
回答ありがとうございます。
なるほど、処理のフローチャート的なスクリプトを作り、
中身は外部のもので埋めていく。という認識でよろしいでしょうか?
枠組みはどのフォームも似たり寄ったりなので読み込むライブラリとテンプレートを変えるだけで使い回せそうですね。
参考になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Submit(送信ボタン)を押した...
-
formの外にあるチェックボック...
-
テキストリンクをPOST送信したい
-
PHPのsubmitボタンが複数ある場合
-
パラメーターを隠す
-
phpでカレンダー作成
-
検索時の選択内容を保持する方法
-
ラジオボタンをsessionで使いたい
-
VBA で、スペースを含むファイ...
-
phpからmysqlにデータ保存(テ...
-
csvファイルチェック
-
PHPで部分一致検索をしたい
-
テンプレートを実現するために
-
コンボボックス(プルダウン)...
-
extract($_POST)
-
PHP セレクトボックスの値 GET...
-
PHPのmysqlに格納したデータの...
-
xmlのデータを条件を絞って表示...
-
ログイン パスワード変更のプ...
-
HTMLのリンクをクリックするこ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPでURLにジャンプするには?
-
フォーム送信後の更新ボタンで...
-
PHPのエラーの解消法について教...
-
テキストリンクをPOST送信したい
-
JavaScript変数をPHPへ渡す
-
セッションを使わずに遷移先画...
-
PHPでファイルアップロード時に...
-
フォームで作った送信ボタンが...
-
phpで、フォームのラジオボタン...
-
$_POST['hoge']のデータをフラ...
-
ボタンをクリックでPHP文を実行
-
ローカルにあるhtmlのフォーム...
-
フォームでの記入項目
-
POSTデータをフォームに残す方法
-
Submit(送信ボタン)を押した...
-
なぜ、unexpected T_VARIABLEに...
-
formの外にあるチェックボック...
-
PHP 入力フォームにて半角スペ...
-
アマゾンのような評価の星を選...
-
サブウィンドウのFORM内データ...
おすすめ情報