Navigation

Universitätsrechenzentrum
PHP-Skripte

PHP: Hypertext Preprocessor

  1. Einführung, Dokumentation
  2. Hinweise zum sicheren Programmieren mit PHP
  3. Formularauswertung
  4. Zugang zu MySQL-Datenbanken
  5. Grafiken und PDF-Dokumente
  6. Senden von E-Mail, Verschleiern von E-Mail-Adressen
  7. Abfrage von LDAP-Daten
  8. Funktionen für VoIP
  9. Tipps
    1. PHP-Fehlermeldungen (für Entwicklung/Fehlersuche)
    2. Start-Tag

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 zetralen Webspace PHP 5 - Konfiguration
www-user.tu-chemnitz.de PHP-Befehle im Webspace der Nutzer
Achtung - Zugriffsrechte analog zu CGI-Skripten setzen!
PHP 5 - Konfiguration

Einführung, Dokumentation

Dateien mit PHP-Befehlen müssen die Endung .php oder auch .html haben. Dateien mit der Endung .phps werden als PHP-Sourcecode erkannt und entsprechend angezeigt.

Beispiel 1:
So sieht es der Leser im Webbrowser - PHP-Anweisungen werden ausgeführt: s1.php
So schreibt es der Autor - PHP-Anweisungen in der Datei: s1.phps

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. Zur Beschreibung sei auf folgende Dokumente verwiesen:

Hinweise zum sicheren Programmieren mit PHP

Formularauswertung

Ein sinnvoller Einsatz von PHP ist die Auswertung von Formularen, ohne dass ein CGI-Programm benötigt wird.

Beispiel 2:
Einfaches Formular mit Auswertung und Abspeichern in eine Datei: s2.php
PHP-Anweisungen in der Datei: s2.phps

 

Für das Schreiben von Dateien beim Server gelten besondere Bedingungen, siehe Hinweise zu CGI-Programmen.
Beispiel 3:
Ein sehr einfaches Gästebuch: s3.php
Und die PHP-Anweisungen: s3.phps

Zugang zu MySQL-Datenbanken

Zugriffe auf MySQL-Datenbanken sind relativ einfach möglich (→ MySQL-Datenbank-Service des URZ).

Dokumentation:

Grafiken und PDF-Dokumente

Unsere PHP-Installation enthält die ErweiterungGD zum Umgang mit Grafiken. Die kommerzielle PDFlib zum Bearbeiten von PDF-Dateien ist nicht mehr verfügbar. Zum Erzeugen von PDF-Dokumenten bitte LaTeX verwenden - Kommando: pdflatex.

Beispiel 4:
PHP berechnet Grafiken mit der GD-Erweiterung, hier objektorientiert: gd.php
Die PHP-Anweisungen: gd.phps, FunctionGraph.class.phps

Senden von E-Mail, Verschleiern von E-Mail-Adressen

Mit PHP können auch E-Mails versendet werden. Aber Achtung: Dies sollte keine Funktion sein, die öffentlich zugänglich ist oder sehr viele E-Mails versendet - im Zweifelsfall bitte nachfragen! Damit die Absende-Adresse richtig gesetzt wird, gibt es eine eigene Funktion dieses Servers: tuc_mail() - Beschreibung siehe Versenden von E-Mail:

Beispiel 6:
Skript zum Versenden einer E-Mail: Die PHP-Anweisungen: mail.phps
Falls Sie die Funktion tuc_mail() nicht einsetzen können oder wollen, beachten Sie bitte unbedingt die Hinweise in Beispiel 7

E-Mail-Adressen sollten nicht mehr im Klartext auf Webseiten stehen - Werbe-Mail-Sender haben so einfaches Spiel. Zum Verschleiern von E-Mail-Adressen (und auch anderen Daten, wie z.B. Fax-Nummern) kann eine PHP-Funktion benutzt werden:

Beispiel 8:
   <?php   require_once('php/mail.inc');
        # Erste Subdomain angezeigt
           echo prot_mailadr('max.mustermann@s2006.tu-chemnitz.de');
        # nach dem @ weggeschnitten:
           echo prot_mailadr('maxi.musterfrau@s2010.tu-chemnitz.de', 1);

        # für eine Nummer geht das auch, 2. Argument: wieviel wird angezeigt:
           echo prot_mailadr('0371 / 531 12345', 11);
   ?>
Auf der erzeugten Webseite steht: max.mustermann@... maxi.musterfrau@... 0371 / 531 ...

Abfrage von LDAP-Daten

Die Abfrage von Personendaten unseres LDAP-Servers gestaltet sich mit PHP und zentral definierten Funktionen recht einfach - siehe Datenabfrage via LDAP.

Funktionen für VoIP

Die VoIP-Telefone der TU Chemnitz können via WWW gesteuert werden. So kann per Klick das Wählen einer Telefonnummer an Ihrem Telefon (mit persönlicher Anmeldung) vorbereitet werden (Click2Dial). Auch dafür gibt es eine vorbereitete PHP-Funktion telnu().

Beispiel 9:
   <?php   require_once('php/tel.inc');
           echo "Ruf doch mal an: " . telnu('123456');
   ?>

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
php_value log_errors_max_len 1000000

# Log-Datei vor Webzugriff schützen
<Files "php_errors">
 Order allow,deny
 Deny from all
</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 ... ?>

Press