Springe zum Hauptinhalt
Universitäts­rechen­zentrum
PHP

PHP: Hypertext Preprocessor

PHP ist eine leistungsfähige Skriptsprache für Webautoren. Man schreibt Spezialanweisungen in den HTML-Text, die der Webserver interpretiert, bevor die Seite dem Browser geliefert wird.

Die zentralen Webserver www.tu-chemnitz.de und www-user.tu-chemnitz.de sind hinsichtlich PHP nahezu identisch konfiguriert:

www.tu-chemnitz.de PHP-Befehle im zentralen Webspace PHP 7 – Konfiguration
www-user.tu-chemnitz.de PHP-Befehle im Webspace der Nutzer PHP 7 – Konfiguration

Einführung, Dokumentation

Dateien mit PHP-Befehlen müssen die Endung .html (empfohlen) oder .php haben, dann wird der enthaltene PHP-Code auch ausgewertet.

Dateien mit der Endung .phps werden nicht interpretiert, sondern der Quelltext direkt im Browser angezeigt. (Also Achtung bei Code, der Geschäftslogik oder interne Kommentare enthält!) .phps-Aufrufe sind aber standardmäßig vom Zugriff ausgenommen (Require all denied), müssen also explizit berechtigt werden.

So sieht es im Webbrowser aus – PHP-Anweisungen werden ausgeführt.

So wird es programmiert
– PHP-Anweisungen in der Datei

Man sieht, dass die PHP-Anweisungen vom HTML-Text durch die Tags <?php …  ?> abgetrennt sind. Es wird auch deutlich, dass PHP wichtige Elemente einer Programmiersprache besitzt – Variablen, Ausdrücke, Anweisungen, Steuerelemente, Klassen. Zur Beschreibung sei auf folgende Dokumente verwiesen:

Lesen Sie unbedingt unsere Hinweise zum sicheren Programmieren mit PHP.

Tipps

PHP-Fehlermeldungen (für Entwicklung/Fehlersuche)

Fehler auf der Webseite anzeigen (nur während der Entwicklung)

  • in Datei .htaccess: php_flag display_errors on
  • Nach der Entwicklungsphase bitte wieder ausschalten.

Fehler in eine Datei schreiben

  • in Datei .htaccess:
    # PHP-Fehler in Datei schreiben
    php_value log_errors on
    # Datei in eigenem Verzeichnis, muss schreibbar für Webserver sein:
    php_value error_log "/afs/tu-chemnitz.de/home/urz/.../public_html/log/php_errors"
    
    # Welche Fehler: alle = -1, wichtigste = 8, schlimmste = 1
    php_value error_reporting -1
    # maximale Größe der Fehlerdatei in Bytes: unbegrenzt = 0 … bis der Speicher voll ist
    php_value log_errors_max_len 1000000
    
    # Log-Datei vor Webzugriff schützen
    <Files "php_errors">
      Require all denied
    </Files>
  • Nach der Entwicklungsphase bitte wieder ausschalten.

Start-Tag

Der Webserver interpretiert nur PHP-Anweisungen, die innerhalb spezieller Tags stehen:
<?php echo "Hallo"; ?>.
Bislang unterstützen wir auch die Kurzform <? … ?> Da dies jedoch nicht XML- und XHTML-konform ist, sollten alle PHP-Programmierer die obige Langform verwenden.

Überprüfen Sie Ihre Skripte dahingehend: Tragen Sie zum Test in eine Datei .htaccess im Verzeichnis des PHP-Skriptes ein:
php_flag short_open_tag off
Dies benötigen Sie momentan auch, wenn Sie in einem Dokument PHP-Anweisungen und XML processing instructions verwenden, z.B. <?xml ... ?>