必須項目の機能は、クライアント側でclassを外してしまえば回避できるため、実質無意味だと思います。
名前が空欄とかも出来てしまう
おっしゃる通り、必須項目であるかどうかのチェックはクライアントサイドでのみ実施しており、サーバーサイドでは実施していないので、デベロッパーツールなどでHTMLを書き変えればチェックをすり抜けることが可能です。
これは以下のページの回答とも共通する話になりますが、当サイトで配布しているプログラムは「HTMLやCSSはわかるけど、プログラムはわからない」という方でも簡単に設置・設定できることを想定して作成しております。
https://www.1-firststep.com/samplephp/support-bbs/single.php?id=390
そのような仕様なので、プログラム設置者はHTMLでclass="required"を追加するだけで、以下の設定をしなくて済むメリットがあります。
1、必須や任意のラベルが自動的に切り替わって表示。
2、エラーメッセージでの項目名も自動で取得。
3、メールフォームの場合は、送信されるメール本文内に記載される項目名も自動で取得。
もし、サーバーサイドでも必須項目のチェックを実施するとしたら、プログラム設置者はHTMLだけでなく、config.phpなどのPHPファイル側でもそれらの設定をしなければいけなくなり、設置の作業が増えてしまうことになります。
レスポンシブBBSの場合は入力項目が少ないうえに増やすことができない仕様ですが、メールフォームの場合は入力項目をいくつでも増やすことが可能な仕様になっております。
そうなると、数多くの項目に関してHTML側とconfig.php側の必須・任意の設定が矛盾しないようにそれぞれ設定する必要が生じ、設定ミスの可能性が高まることとなります。
そのような事態を避け、極力設置を簡単にできるように、現状ではこのような仕様になっております。
もし今後、設置作業を増やさずにこの問題を解決できる手段を思いついたら、アップデートで修正するかもしれません。
ちなみに、レスポンシブBBSを実際の運用上でスパム投稿がたくさん来るかと言えば、おそらくほとんど来ないと思われます。
それは以下のような理由からです。
1、必須チェックをすり抜けて投稿したとしても、スパム投稿者にとってはメリットがない。
2、レスポンシブBBSは初期状態ではURLを投稿してもaタグによるリンクにならないため。(スパム投稿は何らかのURLを記載しての宣伝や、リンクジュースを流すことが目的なのが大半であるため)
3、フォームのPOSTにはAjaxを使用しているため、クロスドメインで送信されない。
4、レスポンシブBBSには最初から「リファラチェック」だけでなく「トークンチェック」も組み込まれているため。
上記1に関しては、必須の項目を任意扱いにしたところで、空でPOSTできるぐらいしか効果がない。(嫌がらせ程度のメリットはあるかもしれませんが、上記3と4の理由によって手間の割に数多くPOSTできない)
また、上記3と4の理由でローカル環境や別サーバーから自動プログラムなどでのPOSTは不可能と考えられます。
もし仮に、上記の条件を突破してスパム投稿が来た場合でも、レスポンシブBBSでは投稿者のIPアドレスが記録されますので、.htaccessやスパムブロックアドオンでアクセス拒否してしまえば解決となります。
というわけで、現状ではこのような仕様となっております。
ご了承ください。