PHP: Hypertext Preprocessor Roman Schröder
PHP2 / 28 Überblick Was ist PHP? Installation Konfiguration Sicherheit Sprachkonstrukte PHP-Pakete
PHP3 / 28 Was ist das? Entwickler: The PHP Group Erscheinungsjahr: 1995 aktuelle Version: 5.2 (2. November 2006) serverseitige Programmiersprache plattformunabhängig Java/C++ ähnliche Syntax
PHP4 / 28 Vor- & Nachteile serverseitiger Ausführung VorteileNachteile keine Imkompatibilität (Browser) kann nicht deaktiviert werden Quelltext bleibt auf Server Client hat kein Zugriff auf Ressourcen wie DB Aktion des Benutzers erst bei Neuaufruf verwertbar Belastung des Servers steigt Sicherheitsrisiken bei unvorsichtiger Programmierung
PHP5 / 28 Funktionen breite Datenbankunterstützung Möglichkeit Funktionsbibliotheken einzubinden (z.B. zur Erzeugung von Bildern) Cookies Session Handling PDF Generierung
PHP6 / 28 Funktionsweise
PHP7 / 28 Installation
PHP8 / 28 Vor- und Nachteile der Varianten CGI-PHPModul Pro Seitenaufruf neuer Prozess Systembelastung steigt enorm Speicher wird am Ende eines Prozesses frei- gegeben Systemsicherheit DB Verbindung geht nach Prozessende verloren Bestandteil des Servers und ständig geladen kann Datenbanklinks über Lebensdauer der Seite hinaus halten (Performancegewinn) manche PHP-Module laufen nicht
PHP9 / 28 Installation des Moduls 1.ZIP Datei entpackenZIP Datei entpacken 2.PHP Konfigurationsdatei ändernPHP Konfigurationsdatei ändern 3.Apache Konfigurationsdatei ändernApache Konfigurationsdatei ändern 4.Apache neu starten Alternative: XAMPP (enthält Apache, PHP, mySQL, phpMyAdmin)
PHP13 / 28 Installation – Unix make make install Installation 1. Apache Konfiguration 2../configure \ --prefix=/usr/local/apache \ --enable-so \ --enable-cgi \ --enable-info \ --enable-rewrite \ --enable-speling \ --enable-usertrack \ --enable-deflate \ --enable-ssl \ --enable-mime-magic./configure \ --with-apxs2=/usr/local/apache/bin/apxs \ --with-mysql \ --prefix=/usr/local/apache/php \ --with-config-file- path=/usr/local/apache/php \ --enable-force-cgi-redirect \ --disable-cgi \ --with-zlib \ --with-gettext \ --with-gdbm PHP Konfiguration
PHP14 / 28 Konfiguration Kann über Funktion phpinfo() eingesehen werdenphpinfo() Änderungen können durchgeführt werden in: php.ini httpd.conf (Apache).htaccess (für Skripte im Verzeichnis) Funktion ini_set() (zur Laufzeit des Skripts)
PHP16 / 28 Sicherheit Keine globalen Variablen verwenden register_globals = off! statt variable2=irgend_ein_wert mit $_GET[‘variable‘] arbeiten externe Variablen vor Einbindung überprüfen (HTML Tags entfernen durch strip_tags(), da evtl. XSS-Scripting Gefahr) XSS Beispiel 1 XSS Beispiel 2
PHP19 / 28 safe_mode Kann in der php.ini gesetzt werden Wenn aktiv, folgende Einschränkungen: Dateifunktionen können nur mit lokalen Dateien ausgeführt werden, die selben Eigentümer haben wie Skript exec() führt nur noch bestimmte Kommandos aus dynamisch ladbare Erweiterungen sind deaktiviert
PHP20 / 28 Sprachkonstrukte
PHP21 / 28 Variablentypen Boolean Integer Float String Array Object
PHP22 / 28 Variablenüberprüfung <?php $bool = TRUE; // ein Boolean (Wahrheitswert) $str = "foo"; // ein String (Zeichenkette) $int = 12; // ein Integer (Ganzzahl) echo gettype($bool); // gibt "boolean" aus echo gettype($str); // gibt "string" aus // Falls es ein Integer ist, erhöhe ihn um vier if (is_int($int)) { $int += 4; } // Falls $bool ein String ist, gebe ihn aus // (gibt überhaupt nichts aus) if (is_string($bool)) { echo "String: $bool"; } ?>
PHP23 / 28 Ausdrücke Konstanten: define("name", "peter"); Verkürzte if Anweisung: $wenn ? $dann : $sonst Funktionen: function verdoppeln($i) { return $i*2; }
PHP24 / 28 Operatoren arithmetische: +, -, *, /, % Zuweisungen: =, +=, -=,.= Vergleiche: ==, !=, >, = Inkrement/Dekrement: ++$a, $a++, --$b, $b-- logische: and, or, xor, !
PHP25 / 28 Kontrollstrukturen if, else, elseif while for switch, break require(_once) / include(_once)
PHP26 / 28 Erweiterungspaket GD Open Source-Programmbibliothek zur dynamischen Erzeugung und Manipulation von Grafiken Zeichnen von Linien, Rechtecken, Polygonen, Kreisbögen und Ellipsen Bilder oder Ausschnitte von Bildern können aus Dateien eingelesen und manipuliert werden Unterstützung von Alphakanälen Erzeugung animierter GIF Grafiken PHP: Erzeugung von Thumbnails (Vorschaubildern)
PHP27 / 28 Verbreitete Applikationen wBB, vBulletin und phpBB – Foren-Software phpMyAdmin – grafische Benutzeroberfläche zur Verwaltung von MySQL-Datenbanken PHP-Nuke – Portal-Software Drupal, PostNuke, TYPO3, Mambo / Joomla! – Content-Management-Systeme (CMS) WordPress – Software für das Erstellen von Weblogs
PHP28 / 28 Noch fragen? Vielen Dank für die Aufmerksamkeit!