Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
668,96 KB
Nội dung
2 – Die Sprache PHP: Prozedural
60
Um eine vollständige HTML-Seite zu erhalten, müssen Sie jetzt noch die Datei
header.inc.php in dasselbe Verzeichnis schreiben:
Alle Tags, die im Header geöffnet werden und noch nicht geschlossen sind, sollten im
Footer geschlossen werden. Dadurch wird Konsistenz für den Entwickler des Content-
Teils erreicht, der dann nur die Tags schließen muss, die er auch selbst öffnet. In diesem
Header bleiben die Tags <html> und <body> geöffnet. Diese werden vom Footer in Lis-
ting 2.52 geschlossen. Zusätzlich wird der Copyrighthinweis hinzugefügt:
Die drei Dateien werden serverseitig zusammengesetzt und zum Client übertragen. Die-
ser erhält als Ergebnis eine korrekte HTML-Datei zur Ausgabe.
<?php include_once('header.inc.php'); ?>
<h2>Herzlich Willkommen!</h2>
<p>Dies ist der Content dieser Web-Seite. Ist der HTML-Code nicht sehr
übersichtlich gehalten? Das kann doch jeder editieren, oder?</p>
<?php include_once('footer.inc.php'); ?>
Listing 2.50: Content-Datei mit Einbindung eines Headers und eines Footers
<?php
$wert=100; // auch alle Initialisierungen
?>
<html><head>
<meta name="author" content="Frank Dopatka">
<meta name="copyright" content="Frank Dopatka">
<meta name="language" content="de">
<title>Dr. Ds Homepage</title>
</head>
<body>
Listing 2.51: Die header.inc.php
<center>
Copyright by Dr. Frank Dopatka, 2009
</center>
</body>
</html>
Listing 2.52: Die footer.inc.php
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Grundlegende Syntax
PHP –Endlich objektorientiert 61
Funktionen zur Bearbeitung von Zeichenketten
PHP hat den Ruf, umfangreiche und leicht anwendbare Funktionen zur Bearbeitung von
Zeichenketten zu besitzen, insbesondere in Bezug auf Internetanwendungen. In diesem
Kapitel werden nur die wichtigsten Funktionen vorgestellt, die im Alltag Anwendung
finden. Weitere Funktionen können Sie mithilfe von Internetsuchmaschinen und PHP-
Portalen wie http://www.phpbox.de/php_befehle/zeichenketten.php ermitteln. Für die selbst
erstellten Anwendungen haben sich die im Folgenden aufgeführten Befehle bereits als
absolut ausreichend erwiesen.
Tabelle 2.12 zeigt die wichtigsten Funktionen zur Ermittlung der Anzahl von Zeichen in
einer Zeichenkette sowie zum Suchen und Vergleichen von Zeichenketten.
Listing 2.53 zeigt Tests der Zeichenkettenfunktionen. Die Ausgaben lauten „6“, „2“, „llo
liebe Leute.“, „liebe“ und „-1“:
Profitipp
Es macht keinen Sinn, die PHP-Dateien des Headers und Footers direkt im Internet-
browser aufzurufen. Diese Dateien sind ausschließlich dazu bestimmt, von anderen
PHP-Skripten eingebunden zu werden. Es hat sich eingebürgert, solche Dateien mit
der Endung .inc.php zu versehen, damit sie leichter von anderen Entwicklern erkannt
werden können.
Funktion Bedeutung
$wert=strlen($str) gibt die Anzahl der Zeichen in
$str
zurück
$wert=strpos($str,$such,$offset) gibt die erste Position von $such in der Zeichenkette
$str
ab dem Wert
von
$offset
zurück
$wert=strrpos($str,$such) gibt die letzte Position von
$such
in der Zeichenkette
$str
zurück
$erg=strstr($str,$such) sucht
$such
in der Zeichenkette
$str
und gibt die Teilzeichenkette von
$str
ab der gefundenen Position bis zum Ende zurück
$erg=substr($str,$start,$len) gibt die Teilzeichenkette ab der Position
$start
von
$str
mit der Länge
$len
zurück
$erg=strcmp($str1,$str2) vergleicht
$str1
und
$str2
und gibt -1 zurück, wenn
$str1
<
$str2
, 0 wenn
beide Strings gleich sind und +1, wenn
$str1
>
$str2
$erg=strcasecmp($str1,$str2) wie
strcmp
, berücksichtigt jedoch keine Groß- und Kleinschreibung
Tabelle 2.12: Funktionen zum Suchen und Vergleichen von Zeichenketten
<html><body>
<?php
echo(strlen("Hallo?").'<br>');
$wert=strpos("Hallo?","l",1);
echo($wert.'<br>');
Listing 2.53: Test der Funktionen zum Suchen und Vergleichen von Zeichenketten
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
2 – Die Sprache PHP: Prozedural
62
Die zweite Sammlung von Funktionen manipuliert und ersetzt Zeichenketten. Die trim-
Funktionen werden besonders bei der Auswertung von Benutzereingaben oder beim
Auslesen aus Werten einer Datenbank verwendet, um überflüssige Leerzeichen zu elimi-
nieren, die ansonsten auch eine Prüfung auf Gleichheit zweier Zeichenketten erschwe-
ren.
Listing 2.54 testet einige dieser Funktionen und führt zu folgender Ausgabe:
Hall\366chen an '\326si' \374ber den Bergpa\337!
Hallöchen an \'Ösi\' über den Bergpaß!
Hallöchen an 'Frank' über den Bergpaß!
echo(strstr("Hallo liebe Leute.","l").'<br>');
echo(substr("Hallo liebe Leute.",6,5).'<br>');
echo(strcmp("Frank","Hans").'<br>');
?>
</body></html>
Funktion Bedeutung
$erg=addcslashes($str,$charlist) setzt C-typische Escape-Zeichen vor jedem Sonderzeichen, dass in
$charlist
angegeben ist und gibt den
$erg=stripcslashes($str,$charlist) entfernt C-typische Escape-Zeichen vor jedem Sonderzeichen, dass
in
$charlist
angegeben ist
$erg=addslashes($str) setzt einen Backslash vor speziellen Sonderzeichen
$erg=stripslashes($str) entfernt den gesetzten Backslash vor speziellen Sonderzeichen
$erg=ltrim($str) entfernt führende Leerzeichen
$erg=rtrim($str) entfernt nachfolgende Leerzeichen
$erg=trim($str) entfernt alle Leerzeichen am Anfang und Ende von
$str
$erg=str_replace($such,$ers,$str) ersetzt in
$str
jedes Vorkommen von $such durch
$ers
Tabelle 2.13: Funktionen zum Ersetzen von Zeichen in Zeichenketten
<html><body>
<?php
$str="Hallöchen an 'Ösi' über den Bergpaß!";
echo(addcslashes($str,"Ööüß").'<br>');
echo(addslashes($str).'<br>');
echo(str_replace("Ösi","Frank",$str));
?>
</body></html>
Listing 2.54: Test der Funktionen zum Ersetzen von Zeichen
Listing 2.53: Test der Funktionen zum Suchen und Vergleichen von Zeichenketten (Forts.)
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Grundlegende Syntax
PHP –Endlich objektorientiert 63
Tabelle 2.14 zeigt Funktionen, die Zeichen oder Zeichenketten umwandeln. Bei dem Ver-
gleich eines eingegebenen Benutzernamens mit einem Benutzer-Eintrag aus einer Daten-
bank wird beispielsweise gern die Funktion strtolower auf beiden Seiten des Gleich-Ope-
rators verwendet. Dadurch ist die Eingabe des Benutzernamens nicht case-sensitiv.
Die Funktionen implode und explode zur Umwandlung von Zeichenketten in Datenfelder
und umgekehrt werden oft beim Laden und Speichern von Daten in Dateien verwendet.
Listing 2.55 testet die Funktionen und führt zu folgender Ausgabe:
!etueL ella na ollaH
hallo an alle leute!
HALLO AN ALLE LEUTE!
70
W
Hallo - an - alle - Leute! -
Funktion Bedeutung
$erg=strrev($str) invertiert die Zeichenkette
$str
$erg=strtolower($str) wandelt
$str
in Kleinbuchstaben um
$erg=strtoupper($str) wandelt
$str
in Großbuchstaben um
$erg=ord($char) gibt den ASCII-Wert des Zeichens zurück
$char=chr($byte) gibt das Zeichen des eingegebenen ASCII-Werts zurück
$arr=explode($sep, $str) trennt
$str
anhand von
$sep
aus und liefert ein Datenfeld zurück
$str=implode($sep, $arr) wandelt ein Datenfeld in eine Zeichenkette um und fügt zwischen
den Elementen den Separator
$sep
ein
Tabelle 2.14: Funktionen zur Umwandlung von Zeichenketten
<html><body>
<?php
$str="Hallo an alle Leute!";
echo(strrev($str).'<br>');
echo(strtolower($str).'<br>');
echo(strtoupper($str).'<br>');
echo(ord("F").'<br>');
echo(chr(87).'<br>');
$arr=explode(" ", $str);
foreach ($arr as $index => $wert){
echo($wert.' - ');
}
Listing 2.55: Test der Umwandlung von Zeichenketten
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
2 – Die Sprache PHP: Prozedural
64
Abschließend sind noch einige besondere Funktionen zur Verwendung von Zeichenket-
ten in Internetanwendungen zu nennen. So wandelt z. B. die Funktion nl2br die von
einer Datei eingelesenen Zeilenumbrüche in <br>-Tags um, sodass die Zeilenumbrüche
auch bei einer Interpretation des entstehenden HTML-Codes erhalten bleiben.
Eine ähnliche Transformation führt der Befehl htmlentities durch. Hier werden Sonder-
zeichen so umgeformt, dass sie bei der HTML-Interpretation identisch auf dem Browser
dargestellt werden. Beispielsweise führt der Befehl echo (htmlentities("Hallöchen
<Freunde>!")); zur folgenden HTML-Ausgabe: Hallöchen <Freunde>!.
Die rawurl-Befehle wandeln die eingegebenen Zeichenketten so um, dass sie als Parame-
ter in einem URL übertragen werden können. Dort existiert z. B. das Problem, wie ein
Leerzeichen in einem Text dargestellt wird. Eine genormte URL-Darstellung lautet in
diesem Fall %20. Diese Konvertierungen werden automatisch von rawurlencode vorge-
nommen und von rawurldecode wieder auf Empfängerseite rückgängig gemacht.
Datum-/Zeitfunktionen
Genauso wie für die Zeichenketten bietet PHP einige Funktionen zur Bearbeitung von
Datums- und Uhrzeitwerten an. Die checkdate-Funktion prüft beispielsweise die Eingabe
eines Monats, Tages und Jahres auf ein gültiges Datum. Diese Daten können von einer
Benutzereingabe stammen.
?>
</body></html>
Funktion Bedeutung
$erg=nl2br($str) wandelt Zeilenumbrüche in
<br>
um
$erg=htmlentities($str) konvertiert HTML-Zeichen, Umlaute und andere Sonderzeichen, um die
Interpretation durch den Internetbrowser zu verhindern
$erg=rawurlencode($str) konvertiert Umlaute und Sonderzeichen einer Zeichenkette in Prozentzei-
chen und hexadezimalen ASCII-Wert zur Verwendung in einem URL
$erg=rawurldecode($str) macht die Konvertierung von
rawurlencode
rückgängig
Tabelle 2.15: Funktionen zur HTML-Bearbeitung von Zeichenketten
Funktion Bedeutung
$erg=checkdate($monat,$tag,$jahr) überprüft eine Zeitangabe auf Gültigkeit unter Berücksichtung
der Schaltjahre und gibt einen Wahrheitswert zurück
$str=date($args) gibt das Datum in dem durch die Argumente gewünschten Format
zurück
$arr=getdate($zeitstempel) gibt Informationen bezüglich des Datums im UNIX-Zeitstempel als
Datenfeld zurück
Tabelle 2.16: Datumsfunktionen
Listing 2.55: Test der Umwandlung von Zeichenketten (Forts.)
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Grundlegende Syntax
PHP –Endlich objektorientiert 65
Die date-Funktion gibt das aktuelle Datum und die Uhrzeit des Servers zurück. Die For-
matierung wird über den Parameter der Funktion anhand der in Tabelle 2.17 abgebilde-
ten Kürzel vorgenommen. So gibt der PHP-Befehl echo(date("d.m.Y - H:i:s")); das aktuelle
Datum und die Uhrzeit im lesbaren Format 02.06.2009 - 22:54:16 zurück.
Zusätzlich existieren Funktionen zum Umgang mit der Uhrzeit, die in Tabelle 2.18 aufge-
listet sind. Zunächst wird die Funktion gettimeofday vorgestellt, die Zeitinformationen in
einem Datenfeld zurück gibt:
Platzhalter Bedeutung
Aam oder pm
AAM oder PM
D Tag des Monats mit führender Null
J Tag des Monats ohne führende Null
D abgekürzter Tag
I vollständig ausgeschriebener Wochentag
F vollständig ausgeschriebener Monat
M Monat mit führender Null
M abgekürzt geschriebener Monat
N Monat ohne führende Null
H Stunde im 12-Stunden-Format mit führender Null
H Stunde im 24-Stunden-Format mit führender Null
G Stunde im 12-Stunden-Format ohne führende Null
G Stunde im 24-Stunden-Format ohne führende Null
I Minuten mit führender Null
S Sekunden mit führender Null
T Anzahl der Tage des Monats
W Wochentag als Zahl; 0 für Sonntag bis 6 für Samstag
Y zweistellige Jahresangabe
Y vierstellige Jahresangabe
Z Tag im Jahr
Tabelle 2.17: Datums- und Zeitformatierung
<html><body>
<?php
$arr=gettimeofday(); var_dump($arr);
?>
</body></html>
Listing 2.56: Test der gettimeofday-Funktion
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
2 – Die Sprache PHP: Prozedural
66
Die Ausgabe der Funktion lautet array(4) { ["sec"]=> int(1243976506) ["usec"]=>
int(171882) ["minuteswest"]=> int(-120) ["dsttime"]=> int(1) }. Das assoziative Feld bein-
haltet die vergangenen Sekunden und Mikrosekunden seit dem 01.01.1970, 00:00Uhr.
Die Variable minuteswest beinhaltet die Minuten westlich von der GMT-Zone (Greenwich
Mean Time), in diesem Fall bestehen also zwei Stunden Differenz. Die dsttime beinhaltet
die Korrektur durch Sommerzeit.
Die zweite vorgestellte Funktion ist microtime mit µs-Genauigkeit. Diese Funktion eignet
sich gut zur Laufzeitmessung von PHP-Quellcode. Der resultierende Zeitstempel nach
der Messung der Startzeit wird zerlegt und gespeichert. Aus der Startzeit und der
gemessenen Endzeit wird ein neuer Zeitstempel errechnet, der abschließend gerundet
wird. So ergibt sich die Zeit in Sekunden. Die gemessene verschachtelte Schleife benötigt
im Test ca. 1,4 Sekunden:
Funktion Bedeutung
$arr=gettimeofday() gibt die aktuelle Zeit in einem Datenfeld zurück
$erg=microtime() gibt den aktuellen UNIX-Zeitstempel in Mikrosekunden seit dem
01.01.1970, 00:00Uhr zurück
$erg=time($args) gibt den aktuellen UNIX-Zeitstempel sekundengenau in der
Formatierung der Argumente zurück
$erg=mktime($std,$min,$sek,
$monat,$tag,$jahr)
ermittelt den UNIX-Zeitstempel anhand der Zeitangabe
Tabelle 2.18: Zeitfunktionen
<html><body>
<?php
// Start-Zeit
$messung1=microtime(); $zeittemp=explode(" ",$messung1);
$messung1=$zeittemp[0]+$zeittemp[1];
// zu messenger Code
for ($i=0;$i<10000000;$i++){
for ($i2=0;$i2<1000;$i2++){
$i++;
}
}
// Ende-Zeit
$messung2=microtime(); $zeittemp=explode(" ",$messung2);
$messung2=$zeittemp[0]+$zeittemp[1]; // Zeitstempel und Nanosek
$messung=$messung2-$messung1; // Zeit-Differenz
$messung=substr($messung,0,8); // auf 6 Kommastellen runden
Listing 2.57: Eine PHP-Zeitmessung
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Grundlegende Syntax
PHP –Endlich objektorientiert 67
Mathematische Funktionen
Neben den Grundrechenoperatoren verfügt PHP zusätzlich über eine Reihe von mathe-
matischen Funktionen, die für Aufgaben des Alltags ausreichen sollten. Tabelle 2.19 zeigt
zunächst die wichtigsten trigonometrischen Funktionen, die im Bogenmaß rechnen. Um
mit der Zahl Pi zu rechnen, bietet PHP die Funktion pi() an. So ergibt sin(pi()/2)=1.
Die Umwandlung von Grad ins Bogenmaß und umgekehrt bieten die Funktionen
deg2rad und rad2deg. Zusätzlich existiert eine Reihe von Zusatzfunktionen zur Konvertie-
rung von Zahlen in verschiedene Zahlensysteme sowie zum Auf- und Abrunden.
print('Seitenaufbau in: '.$messung.' Sekunden.');
?>
</body></html>
Funktion Bedeutung
$erg=sin($var) Sinus von
$var
$erg=cos($var) Cosinus von
$var
$erg=tan($var) Tangens von
$var
$erg=asin($var) Arcus-Sinus von
$var
$erg=acos($var) Arcus-Cosinus von
$var
$erg=atan($var) Arcus-Tangens von
$var
$erg=atan2($var) Arcus-Tangens Hyperbolicus von
$var
Tabelle 2.19: Trigonometrische Funktionen
Funktion Bedeutung
$erg=decbin($var) konvertiert vom Dezimalsystem ins Binärsystem
$erg=bindec($var) konvertiert vom Binärsystem ins Dezimalsystem
$erg=dechex($var) konvertiert vom Dezimalsystem ins Haxadezimalsystem
$erg=hexdec($var) konvertiert vom Haxadezimalsystem ins Dezimalsystem
$erg=decoct($var) konvertiert vom Dezimalsystem ins Oktalsystem
$erg=octdec($var) konvertiert vom Oktalsystem ins Dezimalsystem
$erg=deg2rad($var) konvertiert Grad zum Bogenmaß
$erg=rad2deg($var) konvertiert Bogenmaß zu Grad
$erg=base_convert($var,$base1, $base2) konvertiert zwischen dem Zahlensystem
$base1
in das Zahlen-
system
$base2
$erg=floor($var) rundet eine Fließkommazahl auf die nächste Ganzzahl ab
Tabelle 2.20: Konvertierungsfunktionen
Listing 2.57: Eine PHP-Zeitmessung (Forts.)
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
2 – Die Sprache PHP: Prozedural
68
Weitere PHP-Funktionen bieten grundlegende mathematische Berechnungen von Loga-
rithmen, Potenzierung, Absolutwerten und Quadratwurzeln. Mit all diesen Funktionen
lassen sich erweiterte Berechnungen zusammensetzen.
Außerdem verfügt PHP über vorgefertigte Funktionen, Minimal- und Maximalwerte
aus Listen von Werten zu ermitteln und eine formatierte Ausgabe von Zahlen vorzuneh-
men.
Abschließend werden in Tabelle 2.22 Funktionen zur Erzeugung von Zufallszahlen vor-
gestellt. Mit getrandmax können Sie sich die maximale Zufallszahl ermitteln, die sie
erzeugen können. So liefert echo(getrandmax()) die Ausgabe 32767.
$erg=ceil($var) rundet eine Fließkommazahl auf die nächste Ganzzahl auf
$erg=round($var) rundet einen Wert bei >= x.5 auf und bei < x.5 ab
Funktion Bedeutung
$erg=abs($var) Aubsolutwert von
$var
$erg=exp($var) Potenz
$var
zur Basis e, der Eulerschen Zahl
$erg=log($var) natürlicher Algorithmus von
$var
$erg=log10($var) natürlicher Algorithmus zur Basis 10
$erg=max($a,$b,$c, ) größter Wert der Argumente
$erg=min($a,$b,$c, ) kleinster Wert der Argumente
$erg=number_format($var,$nks,
$komma,$tausender)
Formatierung von
$var
in eine Zahl mit Tausender-Trennzeichen,
dass in
$tausender
vorgegeben wird; ebenso kann die Anzahl an
Nachkommastellen
$nks
vorgegeben werden wie das Trennzeichen
selbst in
$komma
$erg=pow($base,$exp) potenziert
$exp
zur Basis
$base
$erg=sqrt($var) Quadratwurzel von
$var
Tabelle 2.21: Weitere mathematische Funktionen
Funktion Bedeutung
$erg=getrandmax() ermittelt die höchstmögliche Zahl, die durch die Funktion
rand
erzeugt werden
kann
srand($var) legt über
$var
einen internen Startwert für den Zufallsgenerator fest
$erg=rand($min,$max) gibt eine Zufallszahl zwischen
$min
und
$max
zurück
Tabelle 2.22: Funktionen für Zufallszahlen
Funktion Bedeutung
Tabelle 2.20: Konvertierungsfunktionen (Forts.)
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Erweiterte Funktionen
PHP –Endlich objektorientiert 69
Mit srand initialisieren Sie den Zufallsgenerator. Wichtig ist dabei, dass der Parameter
von srand bereits möglichst zufällig gewählt wird. Ein gleicher Initialwert führt nämlich
zu einer gleichen Folge von Zufallszahlen. Mit rand erzeugen Sie nun eine Zufallszahl als
Ganzzahl in den angegebenen Grenzwerten. Listing 2.58 zeigt die Initialisierung des
Zufallszahlengenerators sowie die Erzeugung und Ausgabe von drei Zufallszahlen:
2.2 Erweiterte Funktionen
Nachdem in Kapitel 2.1 grundlegende Funktionen der Sprache PHP vorgestellt wurden,
ist dieses Kapitel auf die Anwendung dieser Funktionalität in typischen kleineren Prob-
lemstellungen fokussiert. Die Lösungen dieser Problemstellungen finden oft Verwen-
dung in Anwendungen, bei denen PHP statische HTML-Seiten ergänzt. Dazu gehört Fol-
gendes:
Auswertung von ausgefüllten HTML-Formularen
Einführung von Sessions (u. a. zur Realisierung von Warenkörben)
Weiterleitung auf andere Seiten
Lesen und Schreiben von Dateien
Zugriff auf einen FTP-Server zum Dateitransfer
Zugriff auf eine MySQL-Datenbank
Automatischer Versand von E-Mails
Auslesen und Parsen von anderen Homepages
HTML-Formulare auswerten
Ein typischer Anwendungsfall für PHP-Skripte liegt in der Auswertung von ausgefüll-
ten HTML-Formularen, um die Daten des Formulars in eine Datenbank einzutragen. Im
ersten Schritt wird ein HTML-Formular benötigt, das für den Testfall aus einem Textfeld,
einer Checkbox, einer DropDown-Box und drei verschiedenen Schaltflächen zum Sen-
<html><body>
<?php
$zeit=microtime(); $zeitfeld=explode(" ",$zeit);
$data=$zeitfeld[0]+$zeitfeld[1];
srand($data); // Initialisierung
$zufall=rand(0,1000); echo($zufall.'<br>');
$zufall=rand(0,1000); echo($zufall.'<br>');
$zufall=rand(0,1000); echo($zufall.'<br>');
?>
</body></html>
Listing 2.58: Erzeugung von Zufallszahlen
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
[...]... GET-Formulars fachlogik_get .php PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 71 2 – Die Sprache PHP: Prozedural echo (var_dump($D3).''); ?> Listing 2.60: Quellcode der Auswertung des GET-Formulars fachlogik_get .php (Forts.) Die zweite Möglichkeit besteht darin, das ausgefüllte Formular über HTTP-POST an ein PHP- Skript zu übergeben... Server als Benutzer < ?php echo $user?> nicht möglich! < ?php die; } else { ?>Sie sind verbunden mit dem Server als Benutzer < ?php echo $user?>.< ?php $upload=@ftp_put($fh,$ziel,$quelle,FTP_ASCII); if (!$upload) { ?>Upload fehlgeschlagen!< ?php } else { ?>Datei < ?php echo $quelle?> erfolgreich geschrieben.< ?php } @ftp_quit($fh); ?>Verbindung wurde wieder getrennt< ?php } ?> ... ($_SESSION[Auth]!=1){ header('Location: portal .php' ); } ?> Hallo < ?php echo $_SESSION[User]?>, Herzlich Willkommen im Portal! Listing 2.64: Beim erfolgreichen Login gelangt man auf die portal .php PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 75 2 – Die Sprache PHP: Prozedural Zum Abschluss dieses Kapitels werden in Tabelle... von der Anwendungsschicht aus angesprochen wird PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 83 2 – Die Sprache PHP: Prozedural Abbildung 2.11: 3-Schichten-Architektur: Client, PHP und MySQL Der Aufruf erfolgt, indem zunächst wie gewohnt vom Internetbrowser des Clients eine Anfrage auf eine PHP- Datei des Webservers über das HTTP-Protokoll... mit Pfadangabe in $var angegeben wird, zurück; bei einem Zugriffsfehler wird FALSE zurückgegeben Tabelle 2.24: PHP- Befehle zum Zugriff auf das Dateisystem des Webservers PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 79 2 – Die Sprache PHP: Prozedural Funktion Bedeutung $erg=flock($fh,$op) schützt eine Datei $fh vor Operationen, die in $op übergeben... der Loginmaske ist – selbst wenn ein Angreifer Kenntnis von der Existenz der Datei portal .php hat – nicht möglich Wenn alles in Ordnung ist, erfolgt eine personalisierte Willkommensnachricht, da der Name des Anwenders in der Session gespeichert wurde: < ?php session_start(); if (!isset($_SESSION[Auth])){ header('Location: login .php' ); } if ($_SESSION[Auth]!=1){ header('Location: portal .php' ); } ?> ... werden: < ?php session_start(); $_SESSION[User]=""; $_SESSION[Pass]=""; $_SESSION[Auth]=0; ?> Benutzer: Kennwort: Listing 2.62: Das Login-Formular login .php mit dem ersten Start der Session PHP–Endlich objektorientiert... Split-Merge on www.verypdf.com to remove this watermark 73 2 – Die Sprache PHP: Prozedural Sie haben die Session-ID < ?php echo session_id()?> vom Server erhalten Listing 2.62: Das Login-Formular login .php mit dem ersten Start der Session (Forts.) Der Anwender füllt das Formular aus und sendet es an die login_server .php zurück Listing 2.63 skizziert ein Skript, das die eingegebenen... $_SESSION[User]=$frmUser; $_SESSION[Auth]=1; header('Location: portal .php' ); } else{ ?> Ihre Eingabe war leider falsch! Zurück um Login < ?php } ?> Listing 2.63: Die login_server .php prüft den Login und leitet entsprechend weiter (Forts.) Listing 2.64 beschreibt die Datei portal .php Dort muss man zunächst prüfen, ob serverseitig eine Authentifizierungsvariable... Session, wie es bereits im vorletzten Kapitel vorgestellt wurde Nur beim Start der Session wird der Wert einmalig aus der Datei gelesen, erhöht PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 77 2 – Die Sprache PHP: Prozedural und wieder gespeichert Ist der Wert bereits in der Session vorhanden, muss er bei einem Reload der Seite lediglich aus der . this watermark.
Grundlegende Syntax
PHP – Endlich objektorientiert 61
Funktionen zur Bearbeitung von Zeichenketten
PHP hat den Ruf, umfangreiche und leicht. Sie mithilfe von Internetsuchmaschinen und PHP-
Portalen wie http://www.phpbox.de /php_ befehle/zeichenketten .php ermitteln. Für die selbst
erstellten Anwendungen