• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サンプルプログラムの仕様がわかりません)

フォームのSubjectが空欄のまま送付される理由

このQ&Aのポイント
  • サンプルプログラムの仕様がわかりません。http://www.ericmmartin.com/projects/simplemodal-demos/ の上から二番目の「Contact Form」というサンプルをダウンロードしました。解凍後、data/contact.phpを開くと、既定ではフォームのSubjectは入力必須でないため、空欄なら17行目の$subject = 'SimpleModal Contact Form';が自動記入されてメールが送付されてくるように見受けますが、Subjectが空欄のメールが送付されてきます。なぜでしょうか?
  • 「Contact Form」サンプルプログラムのフォームのSubjectは入力必須ではないため、空欄の場合は自動的に17行目の$subject = 'SimpleModal Contact Form';が記入されます。しかし、Subjectが空欄のままメールが送付されてくる理由がわかりません。どうすればSubjectが空欄のメールを防ぐことができるのでしょうか?
  • 「Contact Form」サンプルプログラムのフォームのSubjectが自動的に記入される仕組みがありますが、Subjectが空欄のままメールを送付する理由が分かりません。どのようにすればSubjectが空欄のメールを防ぐことができるのでしょうか?

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

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

>空欄なら という仕様になっていません。formからPOSTされなかったら(そもそもname属性の値が"subject"になっているinput要素が存在しなければ)という条件になっています。 $subject = isset($_POST["subject"]) ? $_POST["subject"] : $subject; 「空欄なら」という仕様を追加したければ $subject = (isset($_POST["subject"])and(trim($_POST["subject"]) !== "")) ? $_POST["subject"] : $subject; のようにしてください。

litton101
質問者

お礼

導入当初は、「空欄なら」という仕様があったように思えたのですが 気のせいだったみたいです。 ご提示いただいた1行に変更したところ、望む動作になりました。 大変ありがとうございました! ついでに、あつかましい追加質問で恐縮なのですが、 予めこちらで用意した文言をセットしたい場合はどうしたらいいでしょうか。 contact/index.htmlの28行目にある <input type='button' name='contact' value='Demo' class='contact demo'/> or <a href='#' class='contact'>Demo</a> を、 <?php $sample = "任意の件名の文言"; ?> <input type='button' name='contact' value='Demo' class='contact demo'/> <input type='hidden' name='mysubjt' value='<?= $sample ?>' class='contact demo'/> みたいにして、ボタンを押してコンタクトフォームを開いたら、 Subjectに($_POST["mysubject"]である)「任意の件名の文言」みたいに挿入 されているとGoodなのですが・・・。

litton101
質問者

補足

元質問に完璧な回答をいただいたのに続々と別質問すみません、 論点整理のうえ、新規に再質問をさせていただきます。

関連するQ&A