download-1
FAQ Fachbegriffe/Fehlermeldungen PHP - Fehlermeldungen

PHP - Fehlermeldungen

Wer mit PHP scriptet stößt unweigerlich auch mal auf Fehlermeldungen.

Was heißen jedoch diese Fehlermeldungen und was kann man dagegen tun? Die wichtigsten und meisten Fehlermeldungen sind hier einmal kompakt gelistet.

Parse Error: parse error in XXX.php on line YY

Dieser Fehler sagt dir, dass irgendetwas mit deiner PHP-Syntax nicht stimmt. Der Fehler trat im Script XXX.php in der Zeile YY auf, was aber zwangsläufig nicht heisst, dass der Fehler direkt dort liegt. Manchmal fehlt in der Zeile davor ein Semikolon ( ; ), eine geschweifte Klammer, die das Ende einer Schleife angibt ( } ) oder sogar das PHP-Endtag ?>.
Fatal error: Call to unsupported/undefined function ... in XXX.php on line YY

Hier versucht das Script XXX.php in der Zeile YY eine Funktion aufzurufen, was aber fehlschlägt. Grund dafür ist, dass diese gewünschte Funktion nicht existiert. Entweder unterstützt deine PHP-Version die Funktion nicht oder PHP benötigt dafür ein bestimmtes Modul, was nicht geladen ist. Eine weitere Möglichkeit ist, dass du eine selbstdefinierte Funktion aufrufen möchtest, sie in diesem Script aber nicht vorhanden ist.

Warning: Wrong parameter XXX for YYY() in ZZZ.php on line 123

Diese Meldung erscheint, wenn du falsche Parameter an die Funktion YYY() im Script ZZZ.php in der Zeile 123 übergeben möchtest. Möglich ist, dass du zu wenig oder zuviele Parameter übergeben möchtest oder du einen falschen Datentyp übergibst (z.B. eine Interger-Variable anstatt eines Strings)

Warning: Cannot add header information (header was already sent by XXX.php:YY) in ZZZ.php on line 123


Dieser Fehler erscheint, wenn eine Funktion einen Zugriff den den Header einer Seite benötigt, die aber nicht erhält. Möchte man eine Header-Information setzen, einen Cookie senden oder eine Session starten, so darf vor diesem Vorgang nichts ausgegeben werden. Geschieht das doch, so ist der Zugriff daruf nicht mehr möglich und man erhält eben einen solchen Fehler. Genau aufgedröselt heisst die Meldung: \"Kann keine Header-Informationen senden, wie im Script ZZZ.php in Zeile 123 gewollt, da XXX.php in der Zeile YY schon etwas ausgegeben hat\"

Parse error: parser stack overflow in XXX.php


Diese Meldung erscheint, wenn der interne Speicher von PHP überläuft.
Jedes PHP-Script wird kurzzeitig zwischengespeichert, während der Parser versucht, das Script auszuführen. Hat man nun zufällig eine Endlosschleife im Script oder sendet übermäßig viele Daten auf einmal an den Parser, kommt er nicht mehr nach und stürzt mit dieser Fehlermeldung ab.

Warning: fopen("datei.txt","r+" ) - No such File or directory


Diese Meldung erscheint, wenn man versucht, auf eine Datei zuzugreifen, die nicht existiert.
Meister Fehler ist ein einfacher Vertipper.

SAFE MODE Restriction in effect. The script whose uid is XXX is not allowed to access YYY.php

Der SafeMode ist eine Funktion in PHP, die dafür sorgt, dass PHP-Scripte auch nur eigene Scripte ausführt. Jeder Benutzer hat auf seinem Server eine ganz bestimmte ID, die uid. Legt ein Benutzer nun eine Datei an, so erhält sie auch diese uid und kann so dem einen Benutzer zugeordnet werden. Greift das PHP-Script nun auf Datein oder Ordner mit anderer ID zu, so erscheint dieser Fehler.

Nachfolgender Artikel ist vom Autor b2m zur Verwendung unter www.joomla-tutorials.de freigegeben.
Eine Verwendung auf anderen Webseiten ist nur mit Erlaubnis des Autors gestattet!



Neben den Errors (Fehler beim Verarbeiten der Programme) und Warnings (Hinweise auf mögliche Probleme) gibt es auch noch so genannte Notices.

Diese geben Hinweise auf kleine Unstimmigkeiten im Code, die den normalen Scriptablauf aber nicht weiter stören. Das bedeutet also, dass in den meisten Fällen ein PHP-Script trotz Notices noch korrekt funktioniert.
Ein Beispiel für typische Notices ist z.B.

Notice: Undefined variable: test in /home/www/testjoomla/components/com_testcom/test.php on line 371

Dies weist auf die nicht initialisierte Variable $test in der Datei test.php im Ordner /components/com_testcom/ der Joomlainstallation testjoomla hin. Die Variable ist an dieser Stelle des Scriptes noch nicht vorhanden.

  • Möglichkeit 1: die Variable ist nicht vorhanden, weil sie z.B. per Konfigurationseinstellung deaktiviert wurde
  • Möglichkeit 2: die Variable ist nicht vorhanden, weil sie nur unter bestimmten Bedingungen erstellt wird (wenn der User z.B. ein Administrator ist)
  • Möglichkeit 3: die Variable wurde falsch geschrieben
  • ...

Auch wenn der Scriptablauf noch möglich ist, sind die Hinweise sehr hilfreich bei der Suche von potentiellen Fehlerquellen oder Sicherheitslücken.

Wenn zum Beispiel in einer Funktion zur Ausgabe von Texten die Variable $zeige_alle_texte falsch geschrieben wurde, dann kann es sein, dass alle Texte angezeigt werden, egal ob der Administrator das will oder nicht. Anders herum ist es auch möglich, dass ein "böser" User die Variable $zeige_alle_texte_falsch_geschrieben mit dem Wert "Ja" an das Script übergibt und somit alle Texte angezeigt bekommt (nur möglich bei Register Globals ON, Register Globals Emulation ON oder fehlerhaftem Arbeiten mit von Usern eingegebenen Daten).

Im "normalen" Serverbetrieb ist die Anzeige der Notices deaktiviert, da diese Informationen den normalen Seitenbesucher nichts angehen. Wer einen Testserver hat, auf dem er Joomla-Komponenten nur ansehen will, dem sei auch empfohlen die Notices zu deaktivieren, weil er bei den meisten Komponenten vor lauter "Hinweisen"  von der Komponente oft gar nicht mehr sieht.

Wer aber selbst Scripte schreibt oder damit arbeitet, dem sei dringend empfohlen die Anzeige von Notices in der Testumgebung zu aktivieren.

Dieser Artikel ist vom Autor zur Verwendung unter www.joomla-tutorials.de freigegeben. Eine Verwendung auf anderen Webseiten ist nur mit Erlaubnis des Autors gestattet!
Autor: cybergurk und b2m
 

Benutzer gerade Online

Wir haben 50 Gäste online

Empfehlungen / Hilfe

video-filme joomla-schweiz
joomla-galerien joomla-downloads
joomla-org-englisch easyjoomla
joomla-deutschland joomla-templates-royal
joomlaportal-de

cybergurk
Joomla und mehr...
xing

Unterstützen

Finden Sie das unsere Seite eine gute Sache darstellt? Helfen Sie mit, dass wir diesen Standard beibehalten können.
Ihre Spende hilft uns!

spenden

Vielen Dank für Ihre Unterstützung!