Moin moin!
Parse error: syntax error, unexpected $end in
/var/www/web573/html/php/menue.inc on line 59
Zunächst mal zur Fehlermeldung: Der Fehler liegt entweder direkt in dieser Zeile oder aber - wie in deinem Fall - unmittelbar davor. Hier wird halt wie bereits beschrieben das Ende der FOR-Schleife erwartet, jedoch nicht gefunden.
Aber weshalb ich hier nochmal zitiere ist ein anderer Grund:
/var/www/web573/html/php/menue.inc on line 59
Du scheinst - und das meine ich nicht böse - noch sehr neu im Umgang mit PHP zu sein. Entsprechend rate ich dir hier davon ab, PHP-Dokumente mit der Endung .inc zu verwenden und alle Scripte auf .php enden zu lassen. Du kannst gerne .inc.php nehmen, aber einfach nur .inc könnte große Sicherheitslücken in deiner Software leichter erkennbar machen. Grund hierfür:
Standardmäßig wird auf dem Webserver anhand der Dateiendung die aufzurufende Datei durch einen Parser gejagt - hier: PHP. Wenn also eine Datei zum Beispiel index.php aufgerufen wird, erkennt der Browser die Endung .php und weiß dann, dass diese Datei vor der Ausgabe durch den PHP-Parser muss. Dieser interpretiert dann die PHP-Befehle und gibt nurnoch das als Text zurück, was entweder außerhalb von PHP-Klammern (<?php und ?>) steht oder mittels Ausgabeanweisungen (echo, print, usw.) ausgegeben wurde. Das sind dann die Daten, die der Webserver an den Browser schickt - der PHP-Code ist dann bereits „verschwunden“.
Wenn du nun eine Datei in der index.php einbindest (z.B. mit include()), ist PHP die Dateiendung egal, es interpretiert einfach das, was in der Datei steht. Aber: Sollte mal - aufgrund welchen Umstandes auch immer - ein Fehler in deinen Scripten auftreten (wie z.B. hier gerade), bekommt jeder auf deiner Seite die Fehlermeldung angezeigt, so denn der Webserver dies durch seine Konfiguration nicht verhindert - und standardmäßig werden solche Informationen eben oft angezeigt. Jeder, der diese Fehlermeldung sehen kann könnte nun die Datei menue.inc direkt in den Webbrowser eingeben und würde dann den PHP-Code der Datei angezeigt bekommen, weil der Webserver die Datei nicht durch den PHP-Parser haut, da die Dateiendung nicht erkannt wurde.
Warum ist das nun so ein Problem? Stell dir mal vor, du hast Zugangsdaten zum Datenbank-Server in der Datei config.inc hinterlegt. Zusätzlich dazu baust du in dieser Datei die Datenbank-Verbindung auf, damit du das nicht in jedem Script wieder tun musst. Wenn nun z.B. die Verbindung zur Datenbank nicht funktioniert, weil der Server überlastet ist oder was auch immer, folgt eine Fehlermeldung, in der die Datei config.inc angezeigt wird (nämlich in der Zeile, in der du die Verbindung aufbauen willst). Ruft jetzt einer die Datei config.inc direkt mit dem Browser ab, erhält er alle Informationen, die sonst durch PHP „versteckt“ sind im Klartext. Bei diesem Beispiel also auch Benutzername und Kennwort zur Datenbank. Wenn dein Datenbank-Server dann eine Verbindung zu dem angegebenen Benutzer von „außen“ zulässt und hierfür das gleiche Kennwort verwendet, dann kann derjenige direkt auf deine Datenbank zugreifen.
Ich erzähle das hier nicht, weil ich Spaß am Schreiben habe, sondern weil ein Bekannter von mir mit seiner damals stark frequentierten Single-Community eben genau dieses Problem hatte und dadurch Leute auf die Datenbank zugreifen konnten, in denen dann die Kennwörter alle angemeldeten Benutzer im Klartext zu sehen waren.
Bitte nimm dies also als gut gemeinten Ratschlag!
Im Übrigen kann man sicher auch auf die Faulheit mancher Webmaster setzen, die für den FTP-Zugang dann auch noch das gleiche Kennwort verwenden - oder für ihren E-Mail-Account oder was auch immer.
Aber eines noch ergänzend dazu: Man könnte den Server auch auf andere Weise absichern, indem man den Zugriff auf Dateien mit der Endung .inc generell verwehrt oder diese auch durch den Parser schicken lässt oder oder oder. Es gibt viele Wege nach Rom, aber als Anfänger sollte man lieber die einfachste Variante nutzen und die Dateiendung immer mit .php aufhören lassen.
MfG
Lutz