stareagle: Eingabeformular - Problemchen

Beitrag lesen

Hallo,

»»if(!(@copy($file["tmp_name"],dirname($_SERVER['PATH_TRANSLATED'])."/".$img.$id.$img_format_info))){

echo $error_goback;  ..........

mal schauen, was ich um diese Zeit noch hinbekomme ;-):

  1. Entferne mal das '@'. Wenn ich mich recht entsinne unterdrückt das eine Fehlerausgabe für diesen Befehl. Falls sich in dem Skript noch mehr '@' befinden - weg damit, zumindest bis es läuft.

  2. Prüf nach ob PHP wirklich alle Fehlermeldungen ausgibt (php.ini, weiteres in der PHP-Doku unter www.php.net, auch in Deutsch)

  3. Zerlegen wir dies Stück Code mal.

Wir haben eine if-Anweisung. Die Bedingung in der if-Anweisung wird durch '!' negiert, das heißt aus TRUE wird FALSE und aus FALSE wird TRUE.
Wenn also der Teil in der Klammer FALSE zurückgibt, wird daraus durch '!' ein TRUE und das echo $error_goback; wird ausgeführt.

Innerhalb der der Klammern wird mit Dateien gearbeit. So wie es für mich aussieht (ohne weiteren Kontext) wird die Datei, deren Name im Array $file mit dem Key "tmp_name" angesprochen wird an eine andere Stelle kopiert. Der Name - Name meint hier den kompletten Pfad der Datei - der Datei setzt sich aus dem Rückgabewert der Funktion dirname, die als Parameter $_SERVER['PATH_TRANSLATED'] bekommt und einem "/" und dem Werten von $img, $id, und $img_format_info zusammen.

Der Ausdruck in den Klammern wird - wie in der Mathematik - zuerst ausgewertet. copy dürfte dabei - s. PHP-Manual - einen boolschen Wert zurückgeben. Dieser wird dann, wie bereits beschreiben negiert und, falls die Rückgabe von copy FALSE die Anweisungen in der Zeilen nach dem if ausgeführt.

Gruß

Stareagle