私は、膨大な無知の山から、地元の非営利団体がプロジェクトの写真や説明をアップロードできるようにするためのPHPフォームを作成しようとしています。私が作業しているフォームであるDagonDesignのPHPMailerフォームには、スクリプトの$ form_structセグメントに以下を追加することで、デフォルトのフォームにファイルアップロード関数を追加できると記載されています。
type=file|class=|label=|fieldname=|[req=true]|[allowed=1,2,3]
さらなる声明で
許可されるフィールドはオプションであり、アップロードを許可するファイル拡張子の(コンマ区切りの)リストを定義できます。それ以外の場合は、すべてのファイルタイプが許可されます。
写真だけが欲しいのですが、明らかに何でもアップロードできるようにするのはHEY SCARYのセキュリティホールなので、次のように追加しました(保存機能を有効にするには、すべての空白を埋める必要があることに気づき、少し混乱する必要がありました)。フォーム上:)
type=file|class=fmfile|label=Upload|fieldname=fm_upload|[req=true]|[allowed=png,jpg,jpeg]
フォームはアップロードされたファイルを保存しますが、「許可」はまったく適用されないようです。[許可]フィールドにもかかわらず、php、htmlなどのファイルをアップロードできます。これは明らかに私をびっくりさせています。
このフォームの1100行のコードダンプを人に行わずに、ここで適切な情報を提供しようとしていますが、問題がこの行だけにあるのか、それとも他に有効にする必要があるのかはわかりません。 [許可された]フィールド機能を保証するための全体的なスクリプト。