Server erkennt PHP-Quelltext nicht, oder?

Hallo,

ich habe folgendes Problem:

Auf unserem Server liegt eine PHP-Datei, die ich vor kurzem geändert habe. Nur ein winziges Detail (100% fehlerfrei), aber seit dem funktioniert sie nicht mehr und spuckt Fehlermeldungen aus.

Zunächst gab es die Meldung: Permission denied.

Dann habe ich die Rechte geändert auf „rwx -r-x -r-x“ (By the way: Warum zeigt mir Filezilla diese Berechtigungen im „Dateifenster“ nicht mehr an…?)

Ich nehme also an, dass sich beim Runterladen, Bearbeiten, Wieder-hochladen etwas geändert hat. An der Originaldatei im Übrigen auch, denn die hatte ich ja extra noch abgespeichert.

Jetzt kommen mehrere Fehlermeldungen à la „No such file or directory“ bzw. „Syntax error near unexpected token“. Und zwar unter anderem auch in Zeilen, die ein „//“ davor haben.

Meine Vermutung: Beim Bearbeiten unter Windows hat er mir das Dateiformat verhauen und der Server erkennt die Syntax nicht mehr als PHP. Kann das sein?

Muss zu meiner Schande gestehen, dass ich die erste Bearbeitung mit dem Windows-Editor gemacht habe (war ja nur eine Kleinigkeit). Mittlerweile habe ich die Dateien noch einmal mit Notepad++ geöffnet und im PHP-Format gespeichert. Leider ohne Erfolg…

Was kann ich also machen?
Ich bin nicht gerade Spezialist beim Thema PHP & Co. Erschließe mir nur viele Dinge und fusche dann drin rum. :wink:

Vielen Dank jetzt schon für eure Mühe!

Viele Grüße,
Hängeltoff

Hallo,

Auf unserem Server liegt eine PHP-Datei, die ich vor kurzem
geändert habe. Nur ein winziges Detail (100% fehlerfrei), aber
seit dem funktioniert sie nicht mehr und spuckt
Fehlermeldungen aus.

Zunächst gab es die Meldung: Permission denied.

War das die ganze Fehlermeldung oder stand da noch dabei, worauf der Zugriff verweigert wurde?

Dann habe ich die Rechte geändert auf „rwx -r-x -r-x“ (By the
way: Warum zeigt mir Filezilla diese Berechtigungen im
„Dateifenster“ nicht mehr an…?)

Nachdem Dich die Rechteänderung nicht weitergebracht hat, hast Du hoffentlich die Rechte wieder zurückgesetzt.

Ich nehme also an, dass sich beim Runterladen, Bearbeiten,
Wieder-hochladen etwas geändert hat. An der Originaldatei im
Übrigen auch, denn die hatte ich ja extra noch abgespeichert.

Ich nehme eher an, dass zufällig zeitgleich Änderungen am Server und an der Datei gemacht wurden.

Jetzt kommen mehrere Fehlermeldungen à la „No such file or
directory“ bzw. „Syntax error near unexpected token“. Und zwar
unter anderem auch in Zeilen, die ein „//“ davor haben.

Meine Vermutung: Beim Bearbeiten unter Windows hat er mir das
Dateiformat verhauen und der Server erkennt die Syntax nicht
mehr als PHP. Kann das sein?

Jetzt wäre es hilfreich, wenn Du den Quelltext mal (zumindest in Auszügen) anzeigen würdest.
Außerdem ist es nicht unerheblich auf was für einem Server das Skript ausgeführt wird.
Wenn die Infos da sind, kann ich Dir sicherlich weiterhelfen.
Um herauszufinden, wie der Server aufgesetzt ist, erstelle mal eine php-Datei mit einem beliebigen Namen und folgendem Inhalt:

phpinfo();
?\>

Dann sollte Dir angezeigt werden, mit welchen Einstellungen php interpretiert wird.

Gruß, Stephan

Hallo Stephan,

War das die ganze Fehlermeldung oder stand da noch dabei,
worauf der Zugriff verweigert wurde?

Da steht:

/bin/sh: /is/htdocs/\*SERVER\*/www/net/\*VERZEICHNIS\*/mailcron/mailcron.php: Permission denied

Jetzt wäre es hilfreich, wenn Du den Quelltext mal (zumindest
in Auszügen) anzeigen würdest.

Hier waren jetzt die Fehler folgende:

/is/htdocs/\*SERVER\*/www/net/\*VERZEICHNIS\*/mailcron/mailcron.php: line 1: o;?#!/usr/local/bin/php: No such file or directory
/is/htdocs/\*SERVER\*/www/net/\*VERZEICHNIS/mailcron/mailcron.php: line 3: ?php: No such file or directory
/is/htdocs/\*SERVER\*/www/net/\*VERZEICHNIS\*/mailcron/mailcron.php: line 6: =www/net/\*VERZEICHNIS\*: No such file or directory
/is/htdocs/\*SERVER\*/www/net/\*VERZEICHNIS\*/mailcron/mailcron.php: line 7: //: is a directory
/is/htdocs/\*SERVER\*/www/net/\*VERZEICHNIS\*/mailcron/mailcron.php: line 9: syntax error near unexpected token `"$pfad/system.php"'
/is/htdocs/\*SERVER\*/www/net/\*VERZEICHNIS\*/mailcron/mailcron.php: line 9: 
`require\_once("$pfad/system.php");'

Der Quelltext bis Zeile 9: (Warum ist der Fehler eigentlich nur bis hier?!?)

#!/usr/local/bin/php
#!/usr/sbin/sendmail
<?php $pfad="www/net/*VERZEICHNIS*";<br />//$pfad="..";

require\_once("$pfad/system.php");

Um herauszufinden, wie der Server aufgesetzt ist, erstelle mal
eine php-Datei mit einem beliebigen Namen und folgendem
Inhalt:

phpinfo();
?>

Darum kümmer ich mich. Da ich die Fehlermeldungen immer nur einmal am Tag zugeschickt bekommen, kann ich hierzu erst morgen etwas sagen…

VG,
Hängeltoff

Hallo Hängeltoff,

line 1: o;?#!/usr/local/bin/php: No such file or directory
/is/htdocs/*SERVER*/www/net/*VERZEICHNIS/mailcron/mailcron.php:

jetzt wird das Ganze schon klarer.
Dein Editor hat tatsächlich Steuerzeichen in den Quelltext geschrieben.
Der Quelltext ist so unbrauchbar.
Schick mir mal den Quelltext per mail, dann bekommst Du ihn in 10 min zurück. Du kannst ja „vertrauliche“ Angaben durch Variablen ersetzen.

Gruß, Stephan

Das Problem ist gelöst!

Zur Info für Stephan (vielen Dank nochmal für Deine Hilfe) und alle, die ähnliche Schwierigkeiten haben:

Die Formatierung der Datei musste nur auf „UTF-8 ohne BOM“ gestellt werden. Das wurde vom Windows Editor anscheinend verworfen. Mit Notepad++ kein Problem.

Viele Grüße,
Hängeltoff