質問: 'jpg' or 'png')) { --ここにアップロード処理-- } ```
回答: > > このように複数条件がある場合、どのように記載すると > > ファイル名が空ではない かつ コメントが空ではない かつ MP3ファイルが選択され拡張子がMP3 かつ イメージファイルが選択され拡張子がimg もしくは png を満たした場合に実行できるif文が書けますか? > > > については、最終行の記述がまさにそれにあたります。 ``` if(!empty($_POST['soundName']) && !empty($_POST['comment']) && is_uploaded_file($_FILES['file']['tmp_name']) && $fileType == 'mp3' && is_uploaded_file($_FILES['imagefile']['tmp_name']) && ($fileType2 === 'jpg' or 'png')) { --ここにアップロード処理-- } ``` そのため、現在の記述で > > 画像ファイルにJPG/PNG以外のものを選択しても実行されてしまいます。 > > > ということであれば、「イメージファイルが選択され拡張子がimg もしくは png を満たした場合」の判定方法が間違っているか、変数に意図した値が入っていない可能性が高いです。 結論としては `if($fileType2 === 'jpg' or 'png')`では常にtrueが返るのでこれを修正する必要があります。 こんな感じ `if($fileType2 === 'jpg' or $fileType2 === 'png')`