Einführung in PHP Semester: IV HTWM Hochschule für Technik und Wirtschaft Mittweida – Univerity of applied sciences Einführung in PHP Mitschrift von: Isabel Drost, if99wp1 Seite 1 von 6 Einführung in PHP Semester: IV 1. EINFÜHRUNG IN PHP ............................................................................................................................... 3 1.1. DEFINITION VON PHP.................................................................................................................................... 3 1.2. PHP-RESSOURCHEN ................................................................................................................................. 3 1.3. GRUNDLAGEN ............................................................................................................................................... 3 1.3.1. Allgemeine Syntax ................................................................................................................................. 3 1.3.2. Datentypen............................................................................................................................................. 3 1.3.3. Variablen ............................................................................................................................................... 4 1.3.4. Variablen aus HTML-Formularen ........................................................................................................ 4 1.4. KONTROLLSTRUKTUREN ............................................................................................................................... 4 1.4.1 if.............................................................................................................................................................. 4 1.4.2 while/ do ... while.................................................................................................................................... 4 1.4.3 for ........................................................................................................................................................... 4 1.4.4. include(), require() ist möglich.............................................................................................................. 4 1.4.5. Funktionen wie in Perl .......................................................................................................................... 4 1.4.6. Arrays .................................................................................................................................................... 5 2. PHP UND MYSQL........................................................................................................................................ 5 Mitschrift von: Isabel Drost, if99wp1 Seite 2 von 6 Einführung in PHP Semester: IV 1. Einführung in PHP 1.1. Definition von PHP • • • • • • • • • steht für Hypertext Preprozessor Alternative zu Perl und anderen CGI – Sprachen PHP-Scripts können in HTML-Dateien eingebettet werden Server führt zuerst die PHP-Anweisungen aus und schickt die so produzierte Datei zurück an den Client Können HTML-Dateien on the fly erzeugen Aktualisierung von Dateien/Datn auf dem Server, verschicken von Mails, Grafiken on –the-fly erzeugen PHP kann in HTML eingebettet sein, muß nicht im cgi-bin liegen, um ausgeführt zu werden weitreichende Bibliothek mit APIs und Funktionen Vorteile von PHP4: verbessertes Sessionmanagment, bessere Implementierung der OOP, Performanceverbesserung Kennzeichnung von php-Dateien: php für php4 und php3 für Version 3 1.2. PHP-Ressourchen • • • • • http://www.php.net (Distris ...) http://www.zend.com (Anleitungen, Zusatzsoftware, Distris) http://www.php-builder.com (Tutorials) http://www.php-center.de (Portalseite) http://www.dynamicwebpages.de (Tutorials, Links, Anleitungen, Handbuch) 1.3. Grundlagen <html> <head> <title>It's time for php</title> </head> <body> <?php> echo "Die Zeit ist jetzt: ".time(); ?> </body> </html> 1.3.1. Allgemeine Syntax • spezielle Tags, um den Code zu markieren: - <?php ...?> XML-conform <? ...?> Kurzform <script language="PHP"></script> <% ... %> 1.3.2. Datentypen • • • • integer, double, string, boolean, array, objekte Arrays entsprechen Perllisten php weist Typ automatisch zu entsprechend der ersten Verwendung '...' ... string, maximale Stringlänge entspricht 32K Mitschrift von: Isabel Drost, if99wp1 Seite 3 von 6 Einführung in PHP Semester: IV • Objekte: class myClass { function myFunction($p) { echo $p; } } $var=new myClass; $var->myFunction(5); • undefiniert/ NULL/ 0= false, alles andere ist true 1.3.3. Variablen • • • • immer ein $-Zeichen vor den Variablen Standardmäßig sind alle Variablen global (auch wenn sie via include eingebunden wurden) in benutzerdef. Funkt. nur lokal gültig viele Vordefinierte Variablen, mittels <? phpinfo(); ?> auflistbar - http_user_agent ... Art von ClientRechner - http_referer ... Wo kommt der User her? - php_self ... welches Script bin ich? - request_method ... Anfragemethode - query_string ... ... ;-) - https://www.htwm.de/geissler/intranet/php/php_beispiele.php3 1.3.4. Variablen aus HTML-Formularen • • name-wert –Struktur kann genutzt werden: php erzeugt automatisch $[Feldname] - Variablen aus einem html- Formular kann man komplette Arrays von Daten erhalten, z.b. bei einem select – Tag, ich erhalte also das array $[selectname] (<select multiple name=$farben[ ]>) 1.4. Kontrollstrukturen 1.4.1 if • mehr als eine Anweisung in Klammern, bei nur einer können sie auch alleine stehen 1.4.2 while/ do ... while 1.4.3 for • • folgendes ist auch möglich: for($n=4;--$n;$n){} auch break und continue sind ebenfalls möglich 1.4.4. include(), require() ist möglich • • • weiteren php-code einbinden include geht auch in Schleifen, require geht nur einmalig im Code z.B. zum günstigen Zusammensetzen von Html – Seiten (head, footer, background sind meist im Sinne einer corporate identity ähnlich): include("mein_fuss.htm"); 1.4.5. Funktionen wie in Perl Mitschrift von: Isabel Drost, if99wp1 Seite 4 von 6 Einführung in PHP Semester: IV 1.4.6. Arrays • • • • numerisch indizierbar - Zuweisung einfach: $<arrayname>[]='rot'; - Zuweisung genau: $<arrayname>[0]='rot'; Elementanzahl via count($<arrayname>); assoziative arrays ebenfalls möglich ($<arrayname>["<Indexname>"]) Durchlaufen in einer Schleife: while(list($<schluessel>, $<inhalt>)=each($<arrayname>)) { echo ... } in PHP basieren arrays auf einem internen Zeiger, man kann diesen verfolgen, um herauszufinden, auf welchem Element ich stehe Funktionen dazu: - each( ) benutzt den Namen eines Arrays als Argument, gibt Schlüssel und Wert des aktuellen Elements zurück, bewegt Schlüssel weiter - next( ) - prev( ) - array_walk( ) ermöglichen es mir, das array von vorn nach hinten zu durchlaufen 2. PHP und MySQL • • verschiedene Fkt. zur Kommunikation mit einem SQL-Server siehe auch Script Queries haben kein Semikolon! (Wird automatisch ergänzt.) • Verbindung mit einem solchen Server: $server="wdb.htwm.de"; $nutzer="idrost"; $passw="araxajay"; $link_id=mysql_connect($server, $nutzer, $passw); echo "Verbindungskennung ist: ".$link_id; • Das Erstellen einer DB $create_id=mysql_create_db("<database>"); • PHP – Datenbankabfragen int mysql_db_query (string Datenbank, string Anweisung [,int Verbindungskennung]); int mysql _query(string Anweisungen [, int Verbindungskennung]); - Verbindungskennung optional, sonst standardmäßig die aktuell offene Verbindung • DB auswählen $select=mysql_select_db("idrost"); $sql="CREATE TABLE fotos ( num INTEGER NOT NULL PRIMARY KEY, aufnahme_datum DATE, beschreibung VARCHAR (200) )"; mysql_query($sql); • Fehlerbehandlung Um an evtl. auftretende Fehlermeldungen zu kommen: echo "Fehler: ".mysql_errno( )."; Fehlerbeschreibung: ".mysql_error( ); function error_report() { echo ...;} Bei INSERT, UPDATE, DELETE ist das Ergebnis der query-Fkt. immer ein Integerwert, wobei positiv= Erfolg, sonst nicht. Mitschrift von: Isabel Drost, if99wp1 Seite 5 von 6 Einführung in PHP Semester: IV • Herausholen von Daten aus der DB: $mysql_query(<select string>); while($row=mysql_fetch_array($result) { echo "Daten: ".$row[<Spaltenname>]; } • mysql_close(); zum Schließen der Datenbank Mitschrift von: Isabel Drost, if99wp1 Seite 6 von 6