PHP/Tutorials/Einstieg/Fehlerbehandlung

Aus SELFHTML-Wiki
< PHP‎ | Tutorials‎ | Einstieg
Wechseln zu: Navigation, Suche

Kann mein Webspace PHP?[Bearbeiten]

Heutzutage ist PHP Standard bei allen Providern. Sie können dies einfach testen, indem Sie folgendes Programm auf ihren Server laden.

Beispiel: phpinfo.php
<?php
  phpinfo();
Folgt nach dem PHP-Programmcode kein auszugebender HTML-Code mehr, so kann das schließende ?> fehlen.

Falls PHP installiert ist, gibt Ihnen dieses kleine Programm sehr viele Informationen über ihre PHP-Installation und den Webserver aus, was recht nützlich ist. Merken Sie es sich also gut.

Screenshot der Ausgabe von phpinfo() in PHP 7.1

Wird eine weiße Seite angezeigt, überprüfen Sie …

  • die Dateiendung .php
  • ist der PHP-Code im Dokument valide?
  • ist PHP auf dem Server installiert?

Allerdings kann es sein (und ist nicht wirklich selten!), dass Webhoster in dem (fragwürdigen) Glauben, hierdurch die Sicherheit der Installation zu erhöhen, die Abarbeitung der Funktion phpinfo() verbieten. In dem Fall testen Sie mit:

Beispiel: phptest.php
<?php echo 'PHP? Funktioniert! Version ist: ', phpversion(), "\n";

Wird etwas wie: PHP? Funktioniert! Version ist: 7.1.0 ausgegeben, dann ist PHP ganz offensichtlich tätig geworden, also installiert und konfiguriert.

Testumgebung[Bearbeiten]

Sie können PHP-Code z.B. in einer PHP Sandbox ausprobieren und testen.

Langfristig werden Sie aber nicht umhinkommen, einen Webserver lokal einzurichten (z.B. Apache).

Fehlerbehandlung[Bearbeiten]

error-reporting[Bearbeiten]

Wenn ein Skript nicht wie geplant läuft, können Sie sich Fehlermeldungen ausgeben lassen, um das Skript zu debuggen. Diese Einstellung treffen Sie entweder in der PHP.ini oder direkt im Skript:

Beispiel: Ausgabe von Fehlermeldungen
<?php
  error_reporting(E_ALL);
?>

Allerdings findet diese Ausgabe direkt auf der Webseite und damit in der Öffentlichkeit statt. Angreifer können so Rückschlüsse auf das verwendete System und Lücken ziehen und diese ausnutzen.

Ausgabe von Variablen und ihren Werten[Bearbeiten]

Manchmal will man wissen, welchen Inhalt eine (oder mehrere) bestimmte Variable(n) zu einer bestimmten Zeit hat/haben.

In diesem Artikel wird gezeigt, wie Sie die Ausgabe von var_dump() formatieren können:

Allerdings hat diese Methode einen großen Nachteil. Die Ausgabe der Variable und ihrer Werte erfolgt auf der Webseite selbst. Besser als eine Ausgabe im Browser ist das Schreiben der Daten in eine Textdatei:

Beispiel: Ausgabe von Variablen in einer Textdatei
function debug () {
  $arg_list = func_get_args();

  foreach ($arg_list as $v) {
    file_put_contents(__DIR__.'/debug.txt',(
      is_string($v)
      ? $v
      : print_r($v, true) 
      // true = no immediate output to browser
      ),
      FILE_APPEND
      );
    }
  }

  debug("_POST: ",$_POST,"\r\n_GET: ",$_GET,"\r\n---- und das war's\r\n");

Die Textdatei "debug.txt" befindet sich direkt "neben" dem PHP-Script, also im gleichen Verzeichnis, wofür die magische Konstante __DIR__ verantwortlich ist.




Weblinks[Bearbeiten]