Webseiten mit PHP, SQL, XML und Webservices Anhand praktischer Beispiele
Beispiel Loginformular Ablauf: PC Server Benutzer 1. Wählt Seite 2. HTTP-Request 3. Holt HTML-Datei 4. HTTP-Response 5. Stellt Seite dar 6. Gibt Daten ein ?
HTTP-Requests GET –Daten werden mit URL gesendet z.B.: POST –Daten werden im Datenteil des Requests gesendet PUT, HEAD, OPTIONS, TRACE, DELETE
Verarbeitung der Daten Server HTTP Server CGI: Common Gateway Interface Daten Output Moderner: direkte Einbettung der Skripte in die zu erstellende HTML-Datei (SSI, JSP, ASP, PHP)
Login Formular (login.html) Login Benutzer: Passwort:
7
8 Login Formular (login.html) Login Benutzer: Passwort:
10 login.php
MySQL Datenbank tbl_usr namepwd abccde create table tbl_usr (name char(80), pwd char(80), primary key(name)); insert into tbl_usr values("abc","cde"); grant all privileges on *.* to identified by 'testpass' with grant option;
login.php <? $handle=mysql_pconnect("localhost","testuser","testpass") or die ("Connect to DB failed"); $result=mysql_db_query("test","select * from tbl_usr where name='".$_POST["user"]."'") or die ("Select failed"); if ($thisrow=mysql_fetch_row($result)) { ?>Willkommen ! Hier die Benutzerliste <? do { echo $thisrow[0], " ", $thisrow[1], " "; } while ($thisrow=mysql_fetch_row($result)); } else echo "Alaaaarm"; mysql_free_result($result); ?>
Security Abgesehen davon, dass im Beispiel das Passwort nicht berücksichtigt wurde, ist immer zu berücksichtigen: Alle Informationen fließen im 'Klartext' über das Netz -> Verschlüsselung für sicherheitskritische Anwendungen Variable vor Gebrauch immer validieren
Session HTTP ist stateless Um eine kontinuierliche Benutzerführung zu erreichen werden daher 'Sessions' verwendet. Realisierung meist über Cookies bzw. versteckte Formularfelder Entsprechende Funktionalität in PHP vorhanden
Arbeiten mit XML Wie normale Textdatei bearbeiten -> mühsam Document Object Model Mittels XSLT
DOM hugo hallo Person id Vorname Zuname 123 hugo hallo Traversieren mit child() parent() etc.
XSLT XML Dokument XSLT Dokument XSLFO Dokument XSLT Prozessor ('Parser') Ergebnis XML, HTML,...
WebService mittels nusoap <? require('inc/nusoap.php'); $s=new soapclient(' $zipW2E='94203:89702:84102:80203:68501:50301:62701:46201'; $arrZip=split(":",$zipW2E);... ?>
WebService mittels nusoap for ($i=0; $i<count($arrZip);$i++) { $v=$arrZip[$i]; $parameters=array($v); $res=$s->call('getTemp',$parameters); echo " ".$v." -> ".$res; }