Eğer form doldurulurken değerler boş bırakılırsa empty olarak gelmez. Çünkü value kısmı boş olan inputlar hiçbir zaman POST edilmiyor. Bu sebeple de kontrol etmek için empty yerine isset fonksiyonunu kullanman gerekiyor.

isset($_POST) herhangi bir değer post edildiği sürece true döndürecektir bu sebeple formdaki inputların sadece bir tanesi bile dolu olsa true döner ve boş olan değerleri çekmeye çalıştığında POST edilmediği için hata verir.

Yani kodunun ilk kısmını şu şekilde düzenlersen sorun kalmayacaktır.

if(isset($_POST["otopark"]) && isset($_POST['ad']) && isset($_POST['telefon']) && isset($_POST['mail']))