Hinweise zu PHP

Aus Sicherheitsgründen wurde die PHP-Nutzung auf diesem Webserver eingeschränkt.
In der Konfigurationsdatei php.ini wurde folgender Parameter gesetzt:

disable_functions = system, exec, shell_exec, passthru, phpinfo, show_source, popen, proc_open

Diese Funktionen sind nicht mehr erlaubt!

Diese Einstellungen können u.U. dazu führen, dass Fehlermeldungen nicht mehr angezeigt werden (leere Seite). 

Weiterhin wurden im Apache-Webserver für jeden Nutzer folgendes eingetragen:

php_admin_value open_basedir /import/phtml/<OVGU-Account>
php_admin_value upload_tmp_dir /import/phtml/<OVGU-Account>/cgi-dat
php_admin_value session.save_path /import/phtml/<OVGU-Account>/ses_dir

Bisher wurde als session.save_path das Verzeichnis cgi-dat benutzt. Aus Sicherheitsgründen muss nun das Verzeichnis ses_dir unter public_html angelegt werden. Das Verzeichnis cgi-dat wird nur noch für Uploads genutzt!

Fehlermeldungen werden in PHP nicht angezeigt (leere Seite)

Wenn beim Aufruf eines Scriptes nur eine weiße Seite angezeigt wird, deutet dies eigentlich immer darauf hin, dass ein Fehler auftrat und die Script-Ausführung unterbrochen wurde. Die Fehlermeldung wird allerdings aufgrund der aktuellen Konfiguration nicht ausgegeben oder es kommt gar nicht erst zu einer Fehlermeldung, weil kein syntaktischer oder Laufzeit-Fehler sondern ein logischer Fehler vorliegt.

In den meisten Fällen hilft ein:

    ini_set( 'display_errors', true );
    error_reporting( E_ALL);
 

am Anfang des Scripts.

Eine weitere Möglichkeit an unterdrückte Fehlermeldungen zu kommen, ist diese in ein Logfile zu schreiben und dann auszuwerten.

Dies geht, indem man mit ini_set() die Optionen error_log und log_errors auf ein entsprechendes Logfile stellt.

Beispiel:

     ini_set("log_errors","on");
     ini_set("error_log","errors.txt");
 

Wenn das auch zu keinem besseren Ergebnis führt und ein Debuggen auf dem Server nicht möglich ist, bleibt noch das Einfügen von echo-Anweisungen vor kritischen Stellen, um den Durchlauf des Scriptes zu verfolgen.

Beispiel:

     echo __LINE__;
     flush();
     // Funktionsaufrufe ...
     echo __LINE__;
     flush();
     // Funktionsaufrufe ...
     echo __LINE__;
     flush();
     // Funktionsaufrufe ...
 

An der Ausgabe der Zeilen erkennt man, dass der Fehler zumindest innerhalb der entsprechenden Zeilen einzugrenzen ist.

Letzte Änderung: 04.11.2023 - Ansprechpartner: Webmaster