• ベストアンサー

PHPでのフォーム

お問い合わせフォームを作りたいと考えているのですが、 みなさま、いったいどのようなロジックで作られるのか、 ご意見をいただきたいと思います。 単純に考えて、ひとつのファイルに入力画面、エラー画面、確認画面、 完了画面をすべて入れてしまい、ユーザーのアクションによって出し分ける方がなんかいいのかなーなんて素人ながらに思うのですが、 よく見るフォームは入力画面用のphpとエラー画面用のphpと確認画面用のphpとファイルを分けているものがほとんどのようですが、 いかがなものでしょうか。 とても漠然とした質問で申し訳ないのですが、 前者後者のメリットデメリットなどご意見いただければと思います。

  • PHP
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

フリーで配布されているものは、FTPの本数を減らすためなのか、変更・修正する対象ファイルを減らすためなのか、単一のスクリプトで全部処理しているものも多いですね。 私は(自分で管理できるならば)スクリプトをなるべく小さくしたいので、処理単位でロジックをincludeするか、そもそもスクリプトを分けてしまいます。

trfnc223
質問者

お礼

ご回答ありがとうございます。 たしかにひとつにするとあとでみたときや 第三者が見たときはわかりずらさはありますよね。 分けた方がメンテナンス性がよさそうです。

その他の回答 (1)

  • tols
  • ベストアンサー率46% (7/15)
回答No.2

私は下記のような感じにします。 (簡素に書いてあるので、ロジックだけという事で) <?php $type = $_GET["type"]; switch( $type ) {  // 確認画面  case "confirm":   require_once( "confirm.php" );  break;  // 標準フォームの表示  default:   require_once( "form.php" );  break; } ?> ご存知かと思いますが、MVC( Model View Controller )について深く調べてみると、ひとつの指標ができて 今後の開発の役に立つかも知れません。

trfnc223
質問者

お礼

MVCですね。 意識はしているんですが、 これはMなのかVなのか、 とても迷う時があります。 class や functionを作成しても、 この動作はわけるべきかどこに入れるべきか、 いつも結局ぐちゃぐちゃになってしまいます。 こればっかりはたくさん試して精査していくしかなさそうですね。 ご回答ありがとうございました。

関連するQ&A

  • PHPのメールフォーム(お問合せフォーム)について

    PHPのメールフォーム(お問合せフォーム)について 今、PHPでメールフォームを作っています。 (よくあるお問合せフォームです。) 書籍やウェブサイトを参考に 見よう見まねで、一通り作ってみました。 ただ、メールフォームを作るのは初めてなので 自分が作ったのものが公開できるレベルなのか (一般的なレベルに達しているかどうか)不安な感じです。 そこで、メールフォームについて詳しい方いらっしゃいましたら メールフォームを作る際に、押さえておくポイントについて 箇条書きで構いませんので、簡単に教えていただけないでしょうか。 例えばこんな感じで↓ ------------------- ・データの受け渡しはセッションを使う ・入力されたデータは必ずチェック ・Nullバイト攻撃対策をする ・セッションハイジャック対策する -------------------- ■私が作ってみたメールフォームの入力項目は下記のとおりです。 ------------------- <入力項目> 名前 電話番号 郵便番号 住所 メールアドレス メールアドレス(確認のため2回入力) お問合せ内容 ------------------- ■流れとしては下記のとおりです。 ------------------- 1)入力画面 ↓ 2)確認画面 ↓ 3)完了画面 ↓ 4-1)サイト運営者に入力内容が記載されたメールを送信。 4-2)ユーザーにサンクスメールを送信。 -------------------

    • ベストアンサー
    • PHP
  • PHPによる問い合わせフォームのデーターの受け渡し

    Webサイトを作成しており、現在は問い合わせフォームに取り組んでおります。 そこで、問い合わせフォームで入力したデータを送信した後の、確認画面が上手くできません。 PHPのファイルには以下のように記載しました。 しかし、実際のブラウザの問い合わせフォームのページから送信ボタンを押しても、全く何も表示されておりません。真っ白のままです。 そういえば、問い合わせフォームのページ全体のデザインのまま、データを引き継ぐにはどうしたら良いのでしょうか? PHPファイルに何か特別なコードを記載する必要があるのでしょうか? ちなみに、htmlファイルとphpファイルのhead情報は同じです。 何かアドバイスをして下さる方、お願いします!! <?php $name=$_POST['name']; if($name=='') { print'入力されておりません。'; } else { print $name; } ?>

    • ベストアンサー
    • PHP
  • PHPでのエラーチェックについて

    PHP 初心者デス。よろしくお願いします。 勉強のため、PHPにてメールフォームを作成してます。 PHPでのエラーチェックについて教えていただきたいのですが、 よろしくお願いします。 メールフォーム自体は下記のような流れで作成しております。 ------------------------------------------- 入力フォーム(index.php) ↓(check.php エラーチェック用ファイルとおる) 確認画面表示(confirm.php) ↓(send.php 送信処理がかかれたファイルとおる) 完了画面表示(thanks.html) ------------------------------------------- エラーチェックはindex.phpで必須項目などが、未入力、空白があれば、 送信ボタンを押した際に、index.php自体の入力フォームの下などに 「未入力です」などのエラー表示をさせたいのですが、うまくいきません。 ご教授お願いいたします。 できればSESSIONなどを使用せず行いたいですが可能でしょうか? とりあえず自力でやって、うまくいかなかったのは以下内容です。 --------------------------------------------------- check.phpにエラーチェック用処理を記載しており、index.phpのフォームには <form method="post" action="check.php"> としてます。 ですが、これだともちろんエラー表示はchek.phpに表示されてしまい、 うまくindex.phpにエラー表示ができません。 またindex.phpに入力した内容をconfirm.phpにPOSTで渡せなかったりします。 index.phpにincludeなどでchek.phpを読み込ませて、 <form method="post" action="confirm.php"> としてみても、 うまくエラーチェックが動作しなかったり、 index.phpに入力した内容をconfirm.phpにPOSTで渡せなかったり、 苦労してます。 どうかご教授のほど、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 難題です。php入力フォーム作成について

    困ってます。php入力フォーム作成について 何とか入力フォームと確認画面を表示させるコードを書いたかですが、 最後に「入力完了画面」を表示させるコードと、PHPmailerを使って、入力された情報をメールで送受信までを作ろう思っているのですが、独学ですのでよくわかりません。 自分の書いたコード入力フォームと確認画面のコード(1)(2)以下 自分が書いた入力フォームのHTMLとエラーメッセージが表示させるコードは以下のURLです (1)contact.html(入力フォームと記入漏れエラーの表示させる https://drive.google.com/file/d/1GrdgTj601S07I0o2seNOdXdela5ODQMm/view?usp= (2)confirmation.php(入力確認画面表示コード) https://drive.google.com/file/d/1UCihtfZCFPvoTQC95R6hLX3q_x5HN9kj/view?usp=sharing そして完了画面とメールのphpmailerを使った送受信のコードで 参考にしたいるサイトは以下のURLです。 入力ホームの送受信の方法PHPmailer https://bluecode.io/basic/basic1/basic1-3/# このサイトには入力フォーム→確認画面→完了画面→メールの送受信設定 の順番で書かれていますが、まずここに書いかれている「完了画面のsend.php」のコードを真似したいところですが、今まで自分の書いてきたコード(1)(2)と少し異なるので、完了画面どう書いたら良いでしょうか?自分の書いたコードを参考サイトにある完了画面send.phpを応用して、かけないとPHPmailerのコードも書けないと思います。 困っています。詳しい方回答よろしくお願い致します。少し大変かもしれません。 送付画像は参考にしているURLの画像の一部です。

    • 締切済み
    • PHP
  • PHPによる確認フォームについて

    PHP初心者です。 HTMLフォームからPHPファイルに変数を受け渡すシステムを作っています。 下記のようにHTMLフォームから入力された変数をPHPファイル (確認フォーム)で受け取ることはうまくいきました。 $HTTP_POST_VARS['変数'] 次はそのデータを確認フォームの「確認ボタン」で確認して次のPHPファイル (DBへの入力)に変数を渡したいのですが、どのようにすればよいのでしょうか? いろいろ調べてみたのですが、どうもうまくいきません。 どのようにすればよいのでしょうか?

  • PHPで、日付をチェック

    PHPで、飲食店の予約フォームを作っています。 ファイルは下記の通り。 hoge1.php (フォームに入力) hoge2.php (確認画面) hoge3.php(送信完了画面) check.php入力内容のチェック このフォームで、予約日が前日以内の場合、 「電話にてご予約ください。」 と、エラー表示させたいのですが。 お手数ですが、ご教示ください。 未熟者ですが、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • メール送信フォームについて

    ヘッダー、メニュー、フッターはHTMLで記述しています。 問い合わせフォームはCGIで記述しています。 1.利用者が問い合わせフォームに入力 2.入力内容の確認画面、または入力エラーの画面 3.送信後完了画面 入力内容の確認画面でヘッダー、メニュー、フッターも表示させる。 入力エラーの画面でヘッダー、メニュー、フッターも表示させる。 送信後完了画面でヘッダー、メニュー、フッターも表示させる。 ヘッダー、メニュー、フッターはすべて同じ内容で、 問い合わせフォームのみが変化する仕様になっております。 入力内容の確認画面、入力エラーの画面、送信後完了画面の各画面のヘッダ、メニュー、フッターをCGI内にすべて記述しているのですが効率が悪いと感じております。 どのようにコーディングするのが最も効率が良いでしょうか? どうぞ宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • HTMLにPHPを埋め込んでお問い合わせフォーム

    PHP超初心者です。 こんな感じの、お問い合わせフォームが含まれるHTMLページを作ろうとしています。↓ https://rdlp.jp/image/lp-archive/63361/full.jpg HTMLにPHPを埋め込んで作ろうと思っていて、 こちら↓ https://www.webdesignleaves.com/pr/php/php_contact_form_01.php を参考にしているのですが、 メール送信前に確認ページが表示されて、 OKだったら送信ボタンをクリックする、 修正する場合は戻るボタンをクリックしてもとのお問い合わせフォームに戻る(名前やメールアドレスなど入力した内容を残す)、 というふうにカスタマイズしたいのですが、 どのようにすればよいでしょうか。 (確認画面なしのフォームは実装済みです) カスタマイズでなくても、 ・確認画面あり ・二重送信防止機能あり ・自動返信機能あり ・バリデーション機能あり(お問い合わせフォームにエラーを表示)※添付画像(Web Design Leavesさんのページより) の4つを満たしている、別の作り方紹介ページをご紹介いただく形でもOKです。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP版フォームメール

    メール送信フォームを管理画面で項目等を指定すれば自動で生成(HTMLを)できいくつでも簡単にフォームメールを作成できるPHP限定で探してます。 自動生成ということでフリーソフトでは流石になさそうですが最低限以下の3つを満たすシンプルなものでも構いません。どこかにありますでしょうか? ◆必須の機能 ・入力フォーム→確認画面→送信完了  の流れのフォームメール ・必須項目を設定できる ・フォーム送信後、ユーザと管理者へメールできる ・必須項目が未入力時のみ次画面でエラー画面を表示 ◆できれば欲しい機能 テキスト入力以外に、ラジオやチェックボックスやテキストエリアなども生成できる よろしくお願いします。

    • 締切済み
    • PHP
  • PHPで作成したページがMacで動作しない

    タイトルのようなものはあるのでしょうか? というのも、現在運営しているPHPで作成したアンケートフォームについて問い合わせがきました。 アンケートフォームは全てPHPファイルで、入力→確認→メール送信→完了を行っています。 また、入力された値はそれぞれ$_SESSION['hoge']で管理しています。 問い合わせ内容は、入力画面で入力した後確認画面がいくら待っても表示されないというものでした。 とりあえずの対応としてサファリで行ってもらった結果、問題なく登録できたとのことです。 phpはサーバサイドスクリプトなので、ユーザーの使用ブラウザまであまり考慮していなかったのですが、ブラウザによって使えない関数・処理方法などはあるのでしょうか? また、上記のアンケートフォームについて、Macのネスケでだけ使えない理由・対処法についてもアドバイスいただけますでしょうか。

    • ベストアンサー
    • PHP