Aktuell prüfst du, ob der erlaubte Wert (ein string) in einem array (welches eigentlich ein String ist) enthalten ist.
Aber um das geht es ja. Der erlaubte Wert ist "jpg". Vertausche ich $needle mit $haystack etwa?
Ein paar debug-Ausgaben wären nicht verkehrt.
Ja, ich weiss. Aber ich muss erst mal das Grundgerüst auf die Reihe bekommen