dedlfix: datei-Upload fehlermeldung

Beitrag lesen

echo $begrüßung;

Wenn ich jetzt eine 40 MB grosse datei hochlade, bekomme ich trotzdem eine positive nachricht, dass die Mail inkl. Anhang geschickt wurde.
if(@mail($this->destinationMail,$this->subject,"",$mail_header) && ($_FILES['datei']['error'] == UPLOAD_ERR_OK)) {

Zuerst wird der erste Teil des Ausdrucks ausgewertet. Das heißt, die Funktion mail() wird aufgerufen und gibt true zurück, wenn der Versand geklappt hat. Dann wird versucht den zweiten Teil auszuwerten, was ein bei Ungleichheit ein false ergibt. true && false ergibt false. Die Bedingung des if ist nicht erfüllt.

Wenn du die Reihenfolge der Ausdrücke umdrehst, kann ein Schuh draus werden, denn dann ergibt der Vergleichsausdruck ein false, die Bedingung kann nun nicht mehr erfüllt werden, weswegen der zweite Operand nicht mehr bearbeitet wird. Übersichtlicher ist es aber, das Mail-Senden im Anweisungskörper zu notieren. Als eine Bedingung notiert wird auch dann der gesamte Ausdruck unwahr, wenn das Abliefern der Mail fehlgeschlagen ist. Der Upload an sich hat dann zwar funktioniert, der Anwender bekommt jedoch trotzdem eine Nicht-erfolgreich-Meldung.

echo "$verabschiedung $name";