私の上司は、PHP を介してフォームを処理し、結果を電子メールで送信するスクリプトを設定しました。このプロセッサを使用する必要があります。プロセッサの問題は、次のコード行です。
foreach ($_POST as $k => $v){$$k = strip_tags($v);}
送信されたすべての値が単なる文字列であればこれで問題ありませんが、配列として渡されるいくつかのチェックボックスを処理しようとしています。私が理解していることから、strip_tags 関数は文字列でのみ機能します。すべてを処理し、結果を電子メールで送信しますが、一連のチェックボックスを処理しようとするたびに通知をスローします。注意:配列から文字列への変換...プロセスは引き続き機能しますが、いたるところに醜い通知が表示されます。この問題を一時的に修正するために、strip_tags 関数を削除した結果、次のようになりました。
foreach ($_POST as $k => $v){$$k = $v;}
すべてが適切に機能するようになり、警告、エラー、または通知は表示されません。ただし、これを上司に指摘した後、元のコードに戻って、各チェックボックスに異なる値で同じ名前を付けるのではなく、それぞれに固有の名前を付けてほしいと言っています。私はそれを行うことができましたが、一連のチェックボックスを処理する適切な方法ではないことを知っています. さらに、あらゆる種類の頭痛を引き起こします。私の上司は、配列の操作方法をまったく理解していないため、配列に遭遇するたびに、このような愚かな回避策を考え出します。彼はまた、これがある種のスパム保護であり、人々が受信者をフォームに追加するのを阻止していると主張しています. 私は PHP の専門家ではないかもしれませんが、その記述が間違っていると確信しています。
では、この問題を解決するにはどうすればよいでしょうか? 最初にチェックボックス配列を文字列に変換してから、結果の文字列に対して strip_tags 関数を使用する必要があることはわかっていますが、私はまだ PHP にかなり慣れていないため、そのコード行が最初に何をしているのかを完全には理解していません。誰かが少なくとも私を正しい方向に向けるのを助けることができますか?