Lektion 3 (Variablen in PHP)

Werbung
Formation
Seite 1/31
PHP - Online
http://cours.creuter.lu
Online-Kurs
http://cours.creuter.lu
Kurze Beschreibung der einzelnen Lektionen:
• Lektion 1 (Theorie)
Lektion 2 (Textausgaben und Rechnen)
• Lektion 3 (Variablen in PHP)
• Lektion 4 (Schleifen und andere Kontrollstrukturen)
• Lektion 5 (Formulare und Mailversand
• Lektion 6 (Dateiverwaltung)
• Lektion 7 (Datenbanken)
• Lektion 8 (Weitere Applikationen-Passwortschutz)
• Lektion 9 (Weitere Applikationen-Forum)
• Lektion 10 (Weitere Applikationen-Bildergallerie)
•
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 2/31
PHP - Online
Inhaltsverzeichnis
Online-Kurs............................................................................................................................................................. 1
http://cours.creuter.lu .............................................................................................................................................. 1
Kurze Beschreibung der einzelnen Lektionen:................................................................................................... 1
Inhaltsverzeichnis.................................................................................................................................................... 2
Lektion1 (Theorie) .................................................................................................................................................. 4
Zur Geschichte von PHP ............................................................................................................................... 4
Was ist PHP? ................................................................................................................................................. 4
Wie funktioniert PHP? .................................................................................................................................. 4
Systemvoraussetzungen................................................................................................................................. 4
Informationen zu PHP ................................................................................................................................... 6
Lektion 2 (Textausgaben und Rechnen).................................................................................................................. 7
PHP Notation................................................................................................................................................. 7
PHP-Version herausfinden ............................................................................................................................ 7
"Hallo Welt"-Skript ....................................................................................................................................... 7
Kommentare .................................................................................................................................................. 7
Escape Zeichen.............................................................................................................................................. 8
Sonderzeichen ............................................................................................................................................... 8
Rechnen mit PHP .......................................................................................................................................... 8
Runden von Dezimalzahlen........................................................................................................................... 9
Zufallszahlen ................................................................................................................................................. 9
Lektion 3 (Variablen in PHP) ............................................................................................................................... 10
Variablen ..................................................................................................................................................... 10
Feldvariablen oder Arrays ........................................................................................................................... 11
Assoziative Arrays....................................................................................................................................... 11
Datumsfunktionen ....................................................................................................................................... 12
Lektion 4 (Schleifen und andere Kontrollstrukturen) ........................................................................................... 14
Blöcke.......................................................................................................................................................... 14
Logische Operatoren ................................................................................................................................... 14
If Else .......................................................................................................................................................... 15
Mehrfachauswertungen mit SWITCH......................................................................................................... 16
Schleifen...................................................................................................................................................... 16
Zählschleifen ............................................................................................................................................... 17
Funktionen................................................................................................................................................... 18
Lektion 5 (Formulare und Mailversand) ............................................................................................................... 19
Formulare .................................................................................................................................................... 19
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 3/31
PHP - Online
Mailversand ................................................................................................................................................. 21
Lektion 6 (Dateiverwaltung) ................................................................................................................................. 22
Lektion 7 (Datenbanken) ...................................................................................................................................... 24
SQL ............................................................................................................................................................. 24
PHPmyadmin............................................................................................................................................... 24
SQL und PHP .............................................................................................................................................. 24
Lektion 8 (Applikation: Passwortschutz).............................................................................................................. 27
Passwortschutz ............................................................................................................................................ 27
Sessions ....................................................................................................................................................... 27
Zum Passwortschutzskript........................................................................................................................... 28
Lektion 9 (Applikation: Forum)............................................................................................................................ 29
Forum .......................................................................................................................................................... 29
Lektion 10 (Applikation: Bildergallerie)............................................................................................................... 30
Bildergallerie ............................................................................................................................................... 30
Dokumentation...................................................................................................................................................... 31
Buchtipps .............................................................................................................................................................. 31
Software ................................................................................................................................................................ 31
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 4/31
PHP - Online
Lektion1 (Theorie)
PHP ist eine Skriptsprache um dynamische Websites zu erstellen. Andere häufig benutzte
Skriptsprachen sind zum Beispiel ASP, ColdFusion, CGI, ...
PHP ist die am weitesten verbreitete Skriptsprache, da sie auf einer OpenSourceLizenz basiert, das
heißt, sie ist frei verfügbar (kostet also demnach nichts).
Zur Geschichte von PHP
PHP wurde im Herbst 1994 von Rasmus Lerdorf entwickelt. Er wollte einige "Server-Befehle" für
seine Homepage entwickeln. Diese Befehle nannte er "Personal Home Page Tools" (PHP). Weil
Formulare im Web so wichtig sind, entwickelte er im Laufe des Jahres 1995 einen "Form
Interpreter" (FI) zur Formularauswertung. Alle seine Entwicklungen stellte er frei ins Netz. Viele
begannen sich für PHP/FI zu interessieren und so wuchs das Projekt schnell an.
Inzwischen liegt PHP in der Version 4.4.1 und die Version 5 ist auch schon veröffentlicht. Die
Entwicklung von PHP wird heute hauptsächlich von anderen Entwicklern weitergeführt.
Was ist PHP?
PHP ist eine Programmiersprache, oder besser gesagt eine einfache Skriptsprache, die direkt in
HTML-Dateien eingefügt wird und vom Webserver interpretiert (ausgeführt) wird. Da sie für das
Web entwickelt wurde, enthält sie auch nur solche Befehle, die dort verwendet werden können.
Wie funktioniert PHP?
PHP wird also vom Webserver interpretiert, das heißt der Webserver liest die HTML-Seite, führt die
enthaltenen Skripte aus und liefert dann erst das fertig zusammengesetzte Dokument an den
Browser des Clients (des Surfers). Man bekommt also nicht die in der HTML-Seite eingefügten
Skripte zu sehen, sondern nur ein einfaches HTML-Dokument. Das ist der große Unterschied
zwischen Javascript (und DHTML) zu PHP. Javascript wird auch im HTML-Code eingebettet, doch
wird dieser Code erst ausgeführt, nachdem die Seite geladen wurde. Ein Benutzer kann also den
Code jederzeit ansehen, bei PHP nicht!
Dort liegt auch der große Vorteil von PHP: da leider alle Browser Javascript auf leicht verschiedene
Arten interpretieren, kann es oft zu Fehlermeldungen kommen. Da PHP aber serverseitig
ausgeführt wird, sind diese Skripte browserunabhängig.
Systemvoraussetzungen
Um PHP nutzen zu können muss der Webserver also diese Sprache verstehen (interpretieren
können). Am häufigsten wird PHP auf Apache-Webservern eingesetzt. Der "Apache" ist der
populärste Webserver im Netz, nicht alleine deswegen, weil er auch gratis verfügbar ist (OpenSource Lizenz).
PHP kann auch auf Windows-Servern laufen, allerdings wird dort meistens die Skriptsprache ASP
(Active Server Pages) benutzt.
Die beste Umgebung für die Benutzung PHP's ist ein LAMP-System. LAMP steht für LINUX, Apache,
MySQL und PHP. PHP läuft also meistens auf Linux (Unix)-Webservern. LINUX ist ein alternatives
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
Seite 5/31
PHP - Online
http://cours.creuter.lu
(und kostenloses) Betriebssystem zu WINDOWS. MySQL ist eine strukturierte Abfragesprache
(StructuredQueryLanguage) zur Arbeit mit Datenbanken.
Die meisten Provider unterstützen auch PHP und die Kosten für den Benutzer sind auch
entsprechend niedrig, da das System ja auf Open-Source Lizenzen basiert, also keine teuren
Lizenzgebühren wie bei Microsoft (zum Beispiel) bezahlt werden müssen.
Einige Zahlen zur Verbreitung von PHP
Verteilung der Betriebssysteme für de Domains
Stand April 1999
Betriebssystem
Anzahl der Server
Prozent
Linux
197670
42.7
Solaris/SunOS
104610
22.6
Windows
79790
17.2
95/98/NT
BSD Family
36858
8.0
IRIX
24662
5.3
Mac/Apple
4686
1.0
HPUX
3220
0.7
AIX
2437
0.5
Reliant Unix/Sinix
2219
0.5
Novell Netware
1297
0.3
Digital Unix
602
0.1
SCO Unix
559
0.1
Verteilung der Betriebssystem für lu Domains
Stand April 1999
Betriebssystem
Anzahl der Server Prozent
Windows 95/98/NT
591
28.5
Solaris/SunOS
497
23.9
Linux
403
19.4
BSD Family
250
12.0
IRIX
202
9.8
Mac/Apple
54
2.6
Reliant Unix/Sinix
12
0.6
HPUX
10
0.5
AIX
9
0.5
Digital Unix
5
0.3
Novell Netware
3
0.1
SCO Unix
1
0.0
Anteile der ApacheServers weltweit
Stand Oktober 2003
Server1
Apache
Microsoft
Netscape
Zeus
WebSTAR
WebSite
Other
Claude Reuter
September
Count
7,979,368
2,853,576
112,352
101,128
94,442
27,543
765,715
September
%
66.86%
23.91%
0.94%
0.85%
0.79%
0.23%
6.42%
August
Count
7,705,536
2,765,375
109,898
99,044
91,315
28,979
711,486
http://www.creuter.lu
August
%
66.94%
24.02%
0.95%
0.86%
0.79%
0.25%
6.18%
Change
-0.08%
-0.11%
-0.01%
-0.01%
+0.00%
-0.02%
+0.24%
12.11.2005
Formation
http://cours.creuter.lu
Seite 6/31
PHP - Online
Informationen zu PHP
Weitere Informationen zu PHP findest du
www.selfphp.info
www.php-homepage.de/manual/
www.php.net/download-docs.php
123.koehntopp.de/kris/artikel/php3-einfuehrung/
www.php-center.de/
Claude Reuter
unter
http://www.creuter.lu
anderem
an
folgenden
Adressen:
12.11.2005
Formation
Seite 7/31
PHP - Online
http://cours.creuter.lu
Lektion 2 (Textausgaben und Rechnen)
PHP Notation
Die PHP-Notation ist nicht schwer. Die Skripte werden einfach in HTML-Dateien eingebettet. Der
Beginn eines PHP-Abschnittes beginnt mit
<?php
oder einfach
<?
und endet mit ?>
<? php-Code ?>
PHP-Version herausfinden
Um mehr über die auf dem Server installierte PHP-Umgebung herauszufinden benutzt du einfach
den Befehl <? phpinfo(); ?>
"Hallo Welt"-Skript
Nicht besonders kreativ, aber immer wieder benutzt, ist das erste
Programmiersprache. Man möchte den Text "Hallo Welt" anzeigen lassen.
Skript
in
jeder
In PHP erzeugt man eine Textausgabe mit <? echo "text" ?>
Beispiel: <? echo "Hallo Welt"; ?>
Wichtig ist das Semikolon (;) am Ende. Jede PHP-Zeile endet mit diesem Zeichen. Das ist Pflicht.
Wird dieses ausgelassen erhält man eine Fehlermeldung der Art:
Parse Error: parse error, expecting `''," or `';" in c:\test/hallo.php" on line 13
Anhand dieser Fehlermeldung kann man den Fehler meistens schnell lokalisieren, da die Zeile mit
dem Fehler angegeben wird.
Mehr Infos unter http://de.php.net/echo
Kommentare
Beim Programmieren längerer Projekte sind Kommentare wichtig, damit man sich auch später noch
zurechtfindet.
Kurze Kommentare fügt man ein mit
# dies ist ein Kommentar
Längere Kommentare folgenderweise:
/* dieser Kommentar kann
über mehrere Zeilen gehen */
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
Seite 8/31
PHP - Online
http://cours.creuter.lu
Escape Zeichen
Um einen Zeilenumbruch zu erzeugen benutzt man das Escape Zeichen \n.
Beispiel:
<? echo "Hallo wie gehts?\n"; ?>
<? echo "Sehr gut!\n"; ?>
Speichere die Datei ohne das Escape Zeichen und mit Escape Zeichen ab. Im Browserfenster siehst
du keinen Unterschied, erst im Quelltext kannst du den Unterschied sehen.
Andere Escape Zeichen:
\n erzeugt neue Zeile
\r erzeugt return (neuer Absatz)
\t erzeugt Tabulatorschritt
Mehr Infos unter http://www.htmlite.com/php008.php
Sonderzeichen
Willst du im Text auch Gänsefüßchen angeben, so stehst du vor dem Problem, dass dieses Zeichen
schon benutzt wird, um Anfang und Ende deines Textes zu markieren. Innerhalb deines Textes
musst deshalb diese Zeichen "maskieren", das heißt anstatt " schreibst du \".
Beispiel: <? echo "Hallo \"Welt\"!"; ?> ergibt im Browser Hallo "Welt"
Andere Zeichen die man maskieren muss sind:
das Anführungszeichen ('),
das Dollarzeichen ($)
und der Backslash (\)
Rechnen mit PHP
Natürlich kannst du auch mit PHP rechnen. Hier die wichtigsten Operatoren im Überblick:
Operator
Bedeutung
Beipsiel Resultat
+
Addition
10+3
13
-
Subtraktion
10-3
7
*
Multiplikation
10*3
30
/
Division
12/3
4
%
Rest der Division 10/3
1
pow()
Potenzfunktion
pow(3,2) 32 = 9
Bei Rechnungen setzt du die Berechnung nicht in Gänsefüßchen, da sonst nur die Rechnung als
Text angezeigt wird und nicht das Resultat.
Auch andere mathematische und trigonometrische Rechnungen sind möglich.
Beispiel : <? echo 6 +7 ; ?>
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
Seite 9/31
PHP - Online
http://cours.creuter.lu
Bedenke, dass bei Dezimalzahlen statt des Kommas ein Punkt gesetzt werden muss!
<? echo 3.5 + 2.7 ; ?>
Willst du nun Rechnung und Resultat anzeigen lassen, so musst du beide Textausgaben verbinden.
In PHP verbindet man Strings (Textpassagen - ja auch Resultate sind eigentlich eine Textausgabe)
mit dem Punkt (.)
Beispiel:
<? echo "3+4=";echo 3+4; ?> ergibt 3+4=7
Runden von Dezimalzahlen
Oft muss man Zahlen auf- beziehungsweise abrunden. Hierzu git es die Funktion round()
Beispiel: <? echo round(3.4567,2);?> ergibt 3.45
Der erste Wert bei round() ist die Zahl die auf- oder abgerundet werden soll. Der zweite Wert
hinter dem Komma gibt an, wie viele Stellen hinter dem Dezimalpunkt angezeigt werden sollen.
Ähnlich folgende Funktionen
<? echo floor(3.4567); ?> ergibt 3 (zeigt nur den ganzzahligen Teil einer Zahl)
<? echo ceil(3.4567); ?> ergibt 4 (zeigt die nächsthöhere Ganzzahl)
Mehr Infos unter http://lu.php.net/round (siehe auch die weiteren Links zu den anderen
Funktionen)
Zufallszahlen
Sehr oft benötigt man auch zufällig erstellte Zahlen. Mit mt_rand() erhält man eine solche
Zufallszahl.
<? echo mt_rand(0,20); ?> ergibt eine Zufallszahl zwischen 0 und 20.
Mehr Infos unter http://php3.de/manual/de/function.mt-rand.php
Siehe auch die Beispieldatei zu dieser Lektion.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 10/31
PHP - Online
Lektion 3 (Variablen in PHP)
Variablen
Keine Programmiersprache kommt ohne Variablen aus. Variablen sind Platzhalter für Werte und
Texte. Es ist eine Art Behälter der einen Wert für die Dauer der Programm-/Skriptausführung
enthält. Während dieser "Lebensdauer" der Variablen kann man immer wieder auf sie zurückgreifen
und sie verändern.
Es gibt mehrere Variablentypen
•
•
•
•
•
•
•
•
•
•
Strings: das sind Zeichenketten also meistens Text
Integer: meistens Zahlen
Boolean: Wahrheitswert, also wahr oder falsch (ja oder nein)
Byte: Ganzzahlen von 0 - 255
Float: Kommazahlen
Bouble
Date
Currency
Variant
...
Da PHP eine einfache Skriptsprache ist die eigens für das Web entwickelt wurde, muss man sich
nicht um den Datentypen kümmern. Dieser muss also nicht explizit angegeben werden (genau so
wie bei Javascript). Es genügt eine Variable einfach zu benutzen (initialisieren) und schon gilt sie
als deklariert, den Datentyp automatisch ihres Inhaltes entsprechend.
Jede Variable muss mit dem Dollarzeichen ($) beginnen. Den Rest des Namens kann man sich
selber
aussuchen.
Beispiel: $meine_variable
Allerdings sollte man auf Umlaute, Leerzeichen und Sonderzeichen verzichten. Oft wird der
Unterstrich (_) als Ersatz für das verbotene Leerzeichen benutzt.
Achtung: es wird auch zwischen Groß- und Kleinschreibung unterschieden. $meine_Variable ist
also nicht das gleiche wie $Meine_Variable.
Natürlich sind PHP-Befehle nicht als Variablennamen erlaubt.
Tipp: Benenne deine Variablen immer so, dass sie aussagekräftig sind, damit du später noch
nachvollziehen kannst, welche Variable welche Werte enthält!
Beispiel:
<?
$name ="Claude";
echo "Hallo $name, wie geht's?";
?>
Wenn man mehrere Variablen oder Strings miteinander verketten will, das heißt zusammensetzen
will, benutzt man den Punkt (.)
<?
$name = "Claude";
$nachname = "Reuter";
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
Seite 11/31
PHP - Online
http://cours.creuter.lu
echo "Hallo ".$name." ".$nachname.", wie geht's?";
?>
Mehr Infos unter http://www.php-center.de/phpschulung/core/variablen.htm
Feldvariablen oder Arrays
Manchmal muss man jedoch mehrere Werte in einer Variablen speichern. Hierzu eignen sich die
Arrays oder Wertelisten. Arrays bestehen aus mehreren Werten die von PHP intern
durchnummeriert werden. Dieser Zähler (Index) genannt oder Schlüssel (key) beginnt immer bei
0.
Beispiel: Alle Wochentage sollen in einem Array gespeichert werden.
$tag[0]
$tag[1]
$tag[2]
$tag[3]
$tag[4]
$tag[5]
$tag[6]
="Sonntag";
="Montag";
="Dienstag";
="Donnerstag";
="Freitag";
="Samstag";
="Sonntag";
Will ich nur den Mittwoch ausgeben schreibe ich: echo $tag[3];
Ich kann ein Array auch kürzer definieren (andere Schreibweise aber gleiches Resultat):
$tag = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
echo $tag [3]; ergibt nun wieder Mittwoch.
Beachte, dass der Schlüssel stets in eckigen Klammern geschrieben wird.
Assoziative Arrays
Man kann auch anstelle der Indexnummerierung ein eigenes Schema benutzen.
Array
$land[0]
="Luxemburg";
$land[1]
="Deutschland";
$land[2]
="Frankreich";
$land[3]
="Belgien";
assoziatives
Array
$land["LU"]
Claude Reuter
Kurzform Array
$land = array("Luxemburg","Deutschland","Frankreich","Belgien");
Kurzform assoziatives Array
= $land = array("LU"=>"Luxemburg","DE"=>"Deutschland",
http://www.creuter.lu
12.11.2005
Formation
PHP - Online
http://cours.creuter.lu
"Luxemburg";
$land["DE"]
"Deutschland";
$land["FR"]
"Frankreich";
$land["BE"]
"Belgien";
Seite 12/31
"FR"=>"Frankreich","BE"=>"Belgien");
=
=
=
Bei der ersten Arrayform ermittelt man den Wert für Deutschland mit $land[1].
Beim assoziativen Array erhält man Deutschland durch $land["DE"]. Man braucht sich also nicht
mehr um Indexnummern zu kümmern, sondern benutzt die eigenen gewählten Schlüssel.
Um die Anzahl der Elemente eines Arrays zu erhalten benutzt man count(). count($land); ergibt
in diesem Beispiel 4
Arrays können natürlich auch sortiert werden mit folgenden Befehlen:
Befehl
Auswirkung
natsort
sortiert ein Array natürlich, 2 steht also vor 10
arsort
sortiert ein Array rückwärts
sort
sortiert ein Array den Zeichen nach (2 steht also nach 10 , da 2 nach 1 kommt.)
Beispiel: sort($land) ergibt die Reihenfolge Belgien, Deutschland, Frankreich, Luxemburg
Mehr Infos zu den Arryas unter http://php3.de/manual/de/function.array.php
Mehr Infos zum Sortieren unter http://www.phpfreaks.com/phpmanual/page/function.sort.html
Datumsfunktionen
Oft will man auch das Datum benutzen. Der PHP-Befehl ist hierzu date(). Hiermit kann man
Datum und Uhrzeit ermitteln. Die Funktion date hat mehrere Schalter (Einstellungsmöglichkeiten)
Schalter
Erklärung
Beispiel
j
Monatstag ohne führende Null
1 bis 31
d
Monatstag mit führender Null
01 bis 31
n
Monat ohne fürende Null
1 bis 12
m
Monat mit führender Null
01 bis 12
S
englische Aufzählung
1st
4th
y
Jahreszahl mit 2 Stellen
03
Y
Jahreszahl mit 4 Stellen
2003
D
ausgeschriebener Wochentag, kurz
Mon
l
ausgeschriebener Wochentag, lang
Monday
Claude Reuter
http://www.creuter.lu
3rd
12.11.2005
Formation
http://cours.creuter.lu
Seite 13/31
PHP - Online
M
ausgeschriebener Monatstag, kurz
Oct
F
ausgeschriebener Monatstag, lang
OCtober
w
Wochentag (0 = Sonntag)
0 bis 6
z
Tag des Jahres
0 bis 365
t
Anzahl der Monatstage
28 bis 31
a
am oder pm
am
A
AM oder PM
AM
h
Stunde im 12H Format
1 bis 12
H
Stunde im 24h Format
1 bis 24
i
Minuten von 00 bis 59
04
s
Sekunden von 00 bis 59
12
B
SwatchInternetzeit
125
L
boolescher Wert der bestimmt ob das Datum in einem Schaltjahr liegt (1 =
0 oder 1
Schaltjahr)
Beispiel: echo date("d.m.Y:H:i") ergibt 29.10.2003 14:30
Mehr Infos unter http://lu.php.net/date
Siehe auch die Beispieldatei zu dieser Lektion.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 14/31
PHP - Online
Lektion 4 (Schleifen und andere Kontrollstrukturen)
Fast kein Programm läuft linear ab, das heißt von der ersten Zeile bis zur letzten. Meistens gibt es
einen veränderten Ablauf je nach bestimmten Bedingungen. Um dies zu bewerkstelligen, gibt es in
PHP mehrere Möglichkeiten.
Blöcke
Wenn ein Teil des Codes nur bei einer bestimmten Bedingung erfüllt sein soll, so stellt man diesen
in einen Block.
Beispiel
<?
if (date("w") == 0) {
echo ("Heute ist Sonntag!");
}
?>
Dies bewirkt dass die Textausgabe "Heute ist Sonntag!" nur angezeigt wird, wenn der Besucher
diese Seite an einem Sonntag aufruft. Andernfalls wird nichts ausgegeben.
Beachte, dass die Bedingung (IF-Anweisung) in runden Klammern ((...)) stehen muss. Der oder
die auszuführenden Befehle stehen in geschweiften Klammern ({...})!
Eine alternative Schreibweise ist:
<? if (date("w") == 0) {; ?>
Heute ist Sonntag!
<? ;} ?>
Hier kann man nun einfach HTML-Code in den Anweisungsblock einfügen. Diese Schreibweise
eignet sich, wenn größere HTML-Teile in die Blockanweisung kommen sollen. So erspart man sich
die ewige echo-Anweisung.
Logische Operatoren
Um solche wie oben erwähnte Bedingungen auszuführen braucht man logische Operatoren.
Vielleicht ist dir aufgefallen, dass oben zwei Gleichheitszeichen (=) geschrieben sind. Alle logischen
Ausdrücke ergeben immer 0 (falsch, false) oder 1 (richtig, true).
Operator
Bedeutung
Alternative
Schreibweise
$x and $y ist wahr, wenn $x und $y wahr sind
$x && $y
ist wahr wenn $x oder $y wahr sind
$x || $y
$x or $y
$x xor $y ist falsch, wenn beide gleich sind
!$x
negiert den Wert, also aus False wird True und aus True wird False
$x == $y
ist wahr, wenn $x und $y gleich sind
$x > $y
ist wahr, wenn $x größer als $y ist
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
Seite 15/31
PHP - Online
http://cours.creuter.lu
$x >= $y
ist wahr, wenn $x größer oder gleich $y ist
$x < $y
ist wahr, wenn $x kleiner als $y ist
$x <= $x
ist wahr, wenn $x kleiner oder gleich $y ist
$x <> $y
ist wahr, wenn $x nicht gleich $y ist
Natürlich kann man auch mehrer logische Operationen miteinander verbinden.
Beispiel: if (($x == $y) and ($x <> $z))
Achte immer darauf, die einzelnen Ausdrücke in Klammern zu schreiben!
If Else
Oft wird ein alternativer Befehlsblock gebraucht, wenn die erste Bedingung nicht erfüllt ist, nach
dem Muster (wenn.... dann.... sonst...)
Beispiel:
<?
if (date("w") == 0) {
echo ("Heute ist Sonntag!");
} else {
echo ("Heute ist nicht Sonntag!");
}
?>
oder in der anderen Schreibweise:
<? if (date("w") == 0) {; ?>
Heute ist Sonntag!
<? ;} else { ?>
Heute ist nicht Sonntag!
<? ;} ?>
Alternativ gibt es noch den elseif Befehl.
ohne elseif
mit elseif
<?
if ((date("w") == 0) or (date("w") == 6))
{
echo ("Es ist Wochenende!");
} else {
if (date("w") == 5) {
echo ("Es ist fast Wochenende!");
} else {
echo ("Es ist ein normaler Arbeitstag!");
}
}
?>
<?
if ((date("w") == 0) or (date("w") == 6))
{
echo ("Es ist Wochenende!");
} elseif (date("w") == 5) {
echo ("Es ist fast Wochenende!");
} else {
echo ("Es ist Arbeitstag!");
}
?>
Mit der Anweisung elseif erspart man sich komplexe verschachtele IF-Anweisungen. Deshalb ist
diese oft vorzuziehen.
Bei den If-Anweisungen rückt man die Befehlsblöcke meistens etwas ein, um eine bessere
Lesbarkeit zu erhalten.
Weiter Infos unter http://www.schattenbaum.net/php/if.php
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
Seite 16/31
PHP - Online
http://cours.creuter.lu
Mehrfachauswertungen mit SWITCH
Wenn mehrere Bedingungen auf eine und diesselbe Variable ausgeführt werden müssen , löst es
sich eleganter mit der switch Anweisung.
Im switch Befehl steht die zu testende Variable. Die case-Abschnitte geben die möglichen
Testwerte an, die auf Gleichheit geprüft werden.
Mehrfachauswertung mit switch (ist
eleganter)
Auswertungen mit if
<?
if ((date("w") == 0) or (date("w") ==
6)) {
echo ("Es ist Wochenende!");
} elseif (date("w") == 5) {
echo ("Es ist fast Wochenende!");
} else {
echo ("Es ist Arbeitstag!");
}
?>
<?
switch (date("w")
{
case 0: case 6:
echo ("Es ist Wochenende!");
break;
case 5:
echo ("Es ist fast Wochenende!");
break;
default:
echo ("Es ist Arbeitstag!");
break;
}
Die switch-Anweisungen lesen sich besser als die if-Blöcke. Beachte, dass bei den caseAbschnitten jeweils ein Doppelpunkt (:) folgt und jede case-Anweisung mit break beendet wird.
Auch müssen alle case-Anweisungen in geschweiften Klammern ({...}) stehen. Die defaultAnweisung steht für alle anderen nicht in den vorhergehenden case-Anweisungen erwähnten
Werten, also hier für die Werte 1 bis 4.
Mehr Infos unter http://lu.php.net/switch
Schleifen
Schleifen werden benötigt um Programmteile mehrfach durchzulaufen. Die Anweisungsblöcke einer
Schleife werden auch in geschweifte Klammern ({...}) eingebettet.
Beispiel:
<?
$i = 0;
while ($i <= 6) {
echo ($tag[$i]);
$i++;
}
?>
Diese Schleife zeigt alle Wochentage an. Die Bedingung while überprüft wie oft die Schleife
durchlaufen wird. Die Zeile $i++ bewirkt, dass $i inkrementiert wird (es ist eine Kurzform von $i
= $i + 1). Analog dazu bewirkt $i--, dass $i dekrementiert wird ($i = $i - 1).
Aufgabe: Bei dem vorhergehenden Skript werden alle Wochentage ohne Abstand nebeneinander
geschrieben.
Schreibe ein Skript
•
das jeweils ein Wochentag pro Zeile ausgibt
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
PHP - Online
http://cours.creuter.lu
•
Seite 17/31
das die Wochentage mit Komma und Leerzeichen in einer Reihe getrennt anzeigt
Mit dem Befehl break kann man eine Schleife zu jedem Zeitpunkt beenden.
Beispiel:
<?
$i = 0;
while ($i <= 6) {
echo ($tag[$i]);
$i++;
if ($i == 5) {break;}
}
?>
In diesem Skript werden nur die Wochentage Sonntag bis Donnerstag ausgegeben. Danach wird
die Schleife beendet.
Ähnlich wie die while Anweisung ist die Anweisung do ... while. Der Unterschied zur whileAnweisung ist der folgende: Bei do ...while wird der Befehlsblock mindestens einmal
durchlaufen, bevor die Bedingung getestet wird. Bei der einfachen while-Anweisung kann es
vorkommen,
dass
der
Befehlsblock
überhaupt
nicht
durchgearbeitet
wird.
Beispiel:
while
<?
$i = 5;
while ($i < 5) {
echo ($i);
$i++;
}
?>
do ... while
<?
$i = 5;
do {
echo ($i);
$i++;
} while ($i < 5)
?>
Hier wird die Variable $i nie ausgegeben , da In diesem Fall wird die Variable $i einmal
die Bedingung von Anfang an falsch ist.
ausgegeben. Danach erst wird die Schleife bendet.
Mehr Infos unter http://lu.php.net/manual/en/control-structures.while.php und
http://lu.php.net/manual/en/control-structures.do.while.php
Zählschleifen
Wenn man einen Programmteil mehrfach durchlaufen will, und es eine obere und untere Grenze
gibt, benutzt man die for-Schleifen.
Beispiel:
<?
for ($i = 0; $i < = 6; $i++) {
echo ($tag[$i]);
}
?>
Wie immer steht der Ausführungsblock in geschweiften Klammern({...}).
Die erste Zeile gibt an, dass die Schleife solange durchlaufen (ab 0 beginnend) wird bis $i den Wert
6 hat. Zur Errinnerung: $i++ inkrementiert den Zähler.
Anstelle $i++ kann man auch andere Rechenoperationen verwenden, zum Beispiel $i-- oder $i +2,
...
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 18/31
PHP - Online
Mehr Infos unter http://lu.php.net/manual/en/control-structures.for.php
Funktionen
Funktionen sind kleine Programmabschnitte oder Module, die PHP-Code enthalten. Sie werden aus
dem Skript aufgerufen, können Werte übernehmen und zurückgeben.
Eine Funktion wird folgendermaßen deklariert:
function meinefunktion ($parameter1, $parameter2, ...) {
// hier kommt der Programmcode
return $rueckgabewert
}
Wieder steht der Programmcode in geschweiften Klammern ({...}). Jede Funktion erhält einen
eindeutigen Namen (gleiche Einschränkungen wie bei Variablennamen). In runden Klammern gibt
man die einzelnen Werte an, die an die Funktion übergeben werden. Die Anzahl der Parameter ist
frei.
Hier ein Beispiel einer Funktion:
<?
function begruessung ($name, $zahl) {
echo ("Hallo, $name! Du warst $zahl mal hier.");
}
begruessung ("Claude", 3); //diese Zeile ruft die Funktion begruessung auf und übergibt ihr die
Werte
?>
oder
<?
function euro2luf ($euro) {
$luf = $euro * 40.3399;
return $luf;
}
echo (euro2luf(5)); //diese Zeile ruft die Funktion euro2luf auf und übergibt ihr den Wert
?>
Dies Funktion wandelt eine Betrag von € in LUF um und übergibt diesen Wert an das Programm.
Mehr Infos unter http://php3.de/manual/de/functions.php
Siehe auch die Beispieldatei zu dieser Lektion.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 19/31
PHP - Online
Lektion 5 (Formulare und Mailversand)
Formulare
1. Beispiel
Erstelle zunächst in deinem HTML-Editor ein Formular. Ich gebe hier das Beispiel eines Formulars,
das Euro-Werte in LUF umwandelt. Viele rechnen ja noch um, weil sie sich besser in LUF vorstellen
können, wie viel ein bestimmter Betrag wert ist.
Hier also nun das HTML-Formular:
Betrag in €
Betrag in LUF
0
Umw andeln
Teste das Formular aus. Du siehst nach Drücken der Umwandeln-Taste wird die Umwandlung
ausgeführt. Wie geht das nun?
•
•
•
Durch Klicken auf die Taste wird das Skript aufgerufen. Dazu fügt man im ACTION-Befehl
den Namen des Skriptes ein. Hier wird die gleiche Seite aufgerufen, da kein größeres Skript
abläuft (action="<? echo $PHP_SELF; ?>").
Das erste Input-Feld heißt euro ( <input name="euro" type="text" id="euro"
size="12">). Wenn der Benutzer nun auf UMWANDELN klickt wird der Inhalt vom Textfeld
euro in der Variablen $euro gespeichert.
Das zweite Textfeld heißt luf. Der Wert dieses Inputfeldes wird nun erechnet <input
name="luf" type="text" id="luf" size="12" value="<? echo $euro * 40.3399 ; ?>"
und dann angezeigt.
Du siehst also, das das Ganze nicht recht kompliziert ist. Achte darauf deinen Formularfeldern
aussagekräftige Namen zu geben, da dies nachher die Namen deiner Variablen sind die den Wert
des Benutzers beim Eingeben enthalten. Nun kannst du diese Werte mit den Variablen frei
anzeigen lassen .
2. Beispiel
Betrag in €
Betrag in LUF 0
Umw andeln
Hier ein ähnliches Formular nur wird der LUF-Wert als normaler Text angezeigt. Zu beachten ist,
dass in diesem Formular das Textfeld euro2 genannt wurde, da auf einer Seite nicht 2 Felder
gleichen namens vorhanden sein dürfen.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
Seite 20/31
PHP - Online
http://cours.creuter.lu
3. Beispiel
Nun noch ein drittes Beispiel. Man soll in beide Richtungen umwandeln können.
Betrag
LUF
entsprechen 0 LUF
Umw andeln
4. Beispiel
Im vierten Beispiel soll die Ausgabe in einer neuen Seite angezeigt werden. Wir rufen deshalb im
action des Formulars nicht die gleiche Seite auf, sondern eine neue Seite. Gleichzeitig wird noch
die Ausgabe formatiert, so dass nur 2 Nachkommastellen angezeigt werden (Befehl round()).
Betrag
LUF
Umw andeln
Denke dir ähnliche Beispiel aus und teste sie aus. Dabei lernst du am besten den Umgang mit
Formularen und PHP.
Abschluss: Gästebuch
Zum Abschluss erstellst du ein Gästebuch, bei welchem die Eingaben der Formularfelder in einer
neuen Seite angezeigt werden, sozusagen als Bestätigung für das Abschicken der Daten.
Anmerkung
C'est avec grand plaisir que j'annonce: "Un
Ceci est un test \ il montre les différents f
Teste
Schreibe hier mehrzeiligen
Hier die Ausgaben
Text
Normale Ausgabe
und
benuzte
auch
Anführungszeichen
(Gänsefüßchen).
Ausgabe mit dem Befehl stripslahes()
Nun wird das Escape-Zeichen (/) ausgelassen,
Hier werden die besonderen Zeichen mit dem
doch die Zeilenumbrüche des Originaltextes sind
Escape-Zeichen (/] vorangesetzt
verschwunden.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 21/31
PHP - Online
Ausgabe mit dem Befehl nl2br()
Ausgabe mit den beiden Befehlen
striplashes() und nl2br()
Nur die Zeilenumbrüche wurden respektiert,
doch das Escape-Zeichen ist erneut vor den Erst hier die korrekte Ausgabe.
Sonderzeichen.
Mailversand
Nun fügen wir noch hinzu, dass der Inhalt der Formularfelder an eine Emailadresse (oder mehrere)
verschickt wird. Der Mailversand in PHP ist sehr einfach:
Füge dazu einfach folgende Zeile in dein Skript ein:
mail("emailadresse","betreff","nachricht","From:emailadresse")
Beispiel:
mail("[email protected]","Test","Dies ist nur ein
Test","From:[email protected]")
sendet die Email mit dem Betreff TEST und der Nachricht Dies ist ein Test an die Adresse
[email protected] und als Sender steht die Adresse [email protected].
Natürlich kann man anstelle der Texte Varibalennamen eingeben die vorher definiert wurden.
mail($usermail,$betreff,$subject,"From:$webmaster")
Siehe auch die Beispieldatei zu dieser Lektion und das Beispielgästebuch.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
Seite 22/31
PHP - Online
http://cours.creuter.lu
Lektion 6 (Dateiverwaltung)
Nun geht es darum, Daten in Dateien auf dem Webserver zu schreiben oder von dort zu löschen.
Die Dateien auf dem Webserver müssen Schreibrechte haben, andernfalls kann man sie nicht
bearbeiten. Es gibt die folgenden Modi:
Nur-Lesemodus
r wie read
Öffnet eine Datei zum Lesen und setzt den
Dateizeiger an den Anfang
Lese- und Schreibmodus
r+
Öffnet eine Datei zum Lesen und Schreiben und
setzt den Dateizeiger an den Dateianfang
Nur-Schreibmodus
w wie write
Öffnet eine Datei zum Schreiben. Besteht die Datei
noch nicht, so wird sie erstellt, andernfalls wird die
bestehende Datei gelöscht. Der Dateizeiger wird an
den Dateianfang gesetzt.
Schreib- und Lesemodus
w+ wie write
Öffnet eine Datei zum Schreiben und Lesen.
Besteht die Datei noch nicht, so wird sie erstellt,
andernfalls wird die bestehende Datei gelöscht.
Der Dateizeiger wird an den Dateianfang gesetzt.
Anhängemodus
a wie append
Öffnet eine Datei zum Schreiben. Besteht die Datei
noch nicht, so wird sie erstellt, andernfalls bleiben
vorhandene Daten erhalten. Der Dateizeiger wird
an das Dateiende gesetzt und dort wird dann
weiter eingefügt.
Anhänge- und Lesemodus
a+ wie append
Öffnet eine Datei zum Schreiben und Lesen.
Besteht die Datei noch nicht, so wird sie erstellt,
andernfalls bleiben vorhandene Daten erhalten.
Der Dateizeiger wird an das Dateiende gesetzt und
dort wird dann weiter eingefügt.
Mit folgender Zeile kann man eine Datei öffnen:
<? $fp = fopen("dateiname", "attribut"); ?>
Beispiel: $fp = fopen("zaehler.txt","a+")
Die Datei schließt man mit folgendem Befehl:
<? fclose($fp); ?>
Um aus der Datei zu lesen benutzt man den Befehl fgets()
$zeile = fgets($fp,1024)
Die Zahl gibt die Länge der Bytes an, die gelesen werden sollen. Wird die Zahl nicht angegeben,
gilt der Standardwert 1024 Bytes.
Mit fread() kann man mehrere Zeilen gleichzeitig einlesen. Der Befehl liest nicht bis zum
Zeilenende, sondern bis zum Dateiende.
fread($fp, 4096)
Auch hier kann man die Anzahl der Bytes die gelesen werden sollen, ändern oder weglassen.
Mit fputs schreibt man in eine Datei
fputs($fp,"text")
Hier ein Beispiel für Dateifunktionen:
Das folgende Skript liest den Inhalt einer Datei zeilenweise aus und schreibt es in die HTML-Seite:
$fp = fopen("neu.txt","r");
while ($line = fgets($fp, 1000)) {
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 23/31
PHP - Online
echo $line."<br>";
}
fclose($fp)
Versuche dieses Skript zu verstehen. Versuche nun dein Gästebuch aus der vorigen Lektion so
umzuändern,
dass
die
Formulareingaben
in
eine
Datei
geschrieben
werden.
Ein Beispielskript findest du hier.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
Seite 24/31
PHP - Online
http://cours.creuter.lu
Lektion 7 (Datenbanken)
SQL
Was ist SQL? SQL steht für Structured Query Language oder strukturierte Abfragesprache. Das
Haupteinsatzgebiert von SQL sind Datenbank-Abfragen. SQL ist eine Teilsprache, kann also nur in
Verbindung mit einer Programmiersprache (zum Beispiel PHP, ASP, ...) oder einem speziellen
Datenbankprogramm (zum Beispiel MS Access, Filemaker, ...) .
Datenbanken sind heute von sehr großer Wichtigkeit, da sich so Daten und Informationen leicht
verwalten, manipulieren und abfragen können. Praktisch in jedem Geschäftsbereich und im
privaten Leben werden sie angewandt.
In dieser Lektion lernen wir, wie man Datenbanken mit PHP mittels SQL anwenden kann. Da SQL
aber auch sehr umfangreich ist - man könnte auch einen ganzen Kurs darüber schreiben (wenn
Interesse da ist, vielleicht in einem Jahr) - soll hier nur ein ganz kurzer Einblick erfolgen, der es
ermöglicht, bestehende Skripte auf die eigene Serverumgebung anzupassen. Ich sehe davon ab,
selbst mit PHP Datenbankapplikationen zu entwickeln.
Mehr Infos unter:
http://btmdx1.mat.uni-bayreuth.de/www2/ss2002/node1190.php
http://ad.informatik.uni-freiburg.de/bibliothek/tutorials/DSP/dsp.pdf
PHPmyadmin
Um Datenbanken mit PHP zu erstellen, löschen, verwalten, ... wird meistens phpmyadmin benutzt.
Als erste Übung schlage ich vor, dass du eine Tabelle erstellst mit irgendwelchen Daten anhand
von phpmyadmin.
Mehr Infos unter:
http://www.phpmyadmin.net/home_page/
SQL und PHP
Nun wollen wir eine Verbindung zur Datenbank mit einem PHP-Skript erstellen. Das Skript braucht
dazu folgende Informationen um die Datenbank ansprechen zu können:
Diese Daten muss man im Skript eingeben, damit PHP weiß, wo diese Datenbank zu finden ist.
$conn = @mysql_connect($dbhost,$dbuname,$dbpass);
if ($conn) {
mysql_select_db($dbname,$conn);
} else {
die("<b>No connection with MySQL-Server could be
established</b></body></html>");
}
Diese PHP-Skript erstellt nun eine Verbindung mit der Datenbank. Die Variablen $dbhost,
$dbuname und $dbpass enthalten die Werte für Datenbank-Host, Datenbank-Username und
Datenbank-Passwort. $dbname enthält den Wert für den Datenbank-Namen. Wenn ein Fehler bei
der Verbindung auftritt wird dieser mit die() in einer HTML-Seite angezeigt.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 25/31
PHP - Online
Wir beschränken uns nun auf die Verarbeitung von Datenfeldern. Natürlich kann man auch ganze
Tabellen erstellen, löschen, aktualisieren, ...
Datenfelder auslesen (select)
$sq = "select * from telbuch";
$result = mysql_query($sq);
$anzahl = mysql_numrows($result);
for ($i = 0; $i < $anzahl; $i++) {
$name = mysql_result($result,$i,"name");
$tel = mysql_result($result,$i,"tel");
echo ("Name: ".$name." Tel: ".$tel);
}
Mit dem Befehl select wird eine Tabelle ausgelesen. Man muss dazu den Namen der Tabelle (in
diesem Beispiel telbuch) definieren. Das Sternchen (*) bedeutet, dass alle Felder dieser Tabelle
ausgelesen werden. Alternativ kann man auch nur bestimmte Felder angeben; bei mehreren
Feldern durch Komma getrennt (Beispiel: select name,tel from ...).
Mit mysql_query() wird nun diese Datenbank angesprochen und die Anfrage ausgeführt, das heißt
die Felder ausgelesen.
mysql_numrows() zählt die Zahl der Einträge (Zeilen) in der Tabelle.
Die for-Schleife läuft dann alle Einträge durch und gibt die Felder mi dem echo-Befehl aus.
mysql_result($result,$i,"name") greift dann je nach dem Wert von $i in der entsprechenden
Zeile auf den Inhalt der Spalte name zu.
Die select-Abfrage kann man noch mehr einschränken durch bBefehle wie
•
•
•
where - gibt Bedingungen an die die Felder erfüllen müssen
order by - sortiert die Daten nach bestimmten Kriterien
...
Datenfelder eingeben (insert)
Um Daten in eine Tabelle einzugeben, benutzt man den Befehl INSERT. Hier ein Beispiel:
$conn = @mysql_connect($dbhost,$dbuname,$dbpass);
mysql_select_db($dbname,$conn);
$sq = "INSERT INTO telbuch (name,tel) VALUES ('$name','$tel')";
$result = mysql($dbname, $sq);
In diesem Beispiel wird der Inhalt der Variablen $name und $tel in die Tabelle telbuch in die
Spalten name und tel eingefügt.
Datenfelder aktualisieren (update)
Um Daten in einer Tabelle zu aktualisieren, benutzt man den Befehl UPDATE. Hier ein Beispiel:
$conn = @mysql_connect($dbhost,$dbuname,$dbpass);
mysql_select_db($dbname,$conn);
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 26/31
PHP - Online
$sq = "UPDATE telbuch SET tel = '".$tel."' WHERE name = '".$name."'";
$result = mysql($dbname, $sq);
In diesem Beispiel wird der Inhalt der Variablen $tel in der Tabelle telbuch in der Spalte tel
aktualisiert, und dies nur für den Datensatz der den Wert $name in der Spalte name enthält.
Datenfelder löschen (delete)
Um Daten in einer Tabelle zu entfernen, benutzt man den Befehl DELETE. Hier ein Beispiel:
$conn = @mysql_connect($dbhost,$dbuname,$dbpass);
mysql_select_db($dbname,$conn);
$sq = "DELETE from telbuch WHERE name = '".$name."'";
$result = mysql($dbname, $sq);
Hier wird der Datensatz aus der Tabelle telbuch entfernt, welcher die Bedingung in der WHEREKlausel erfüllt: also alle Datensatze die in der Spalte name den Wert $name enthalten.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 27/31
PHP - Online
Lektion 8 (Applikation: Passwortschutz)
Passwortschutz
Oft benötigt man passwortgeschützte Seiten, das heißt, ein Bereich des Websites, der nur für
bestimmte Benutzer zugänglich ist. Dies läßt sich auch mit Javascript realisieren, ist jedoch relativ
unsicher und der Schutz ist leicht zu umgehen.
Sichere geht es mit PHP. Man kann das Passwort und den Username in einer Datei auf dem
Webserver abspeichern (ähnlich der Vorgehensweise mit dem Gästebuch in der Lektion 6) und es
dann zur Kontrolle dort auslesen oder (was noch sicherer ist: man speichert diese geheimen Daten
in einer Datenbank ab.
In dieser Lektion erstellen wir einen passwortgeschützten Bereich, bei welchem die Eingangsdaten
in einer Datenbank abgespeichert sind. Wenn mehrere Seiten in diesem Bereich enthalten sind,
stellt sich ein neues Problem. Man kann ja nicht für jede Seite den gleichen Login benutzen; das
würde die Benutzer nur verärgern. Deshalb arbeitet man hier mit Sessions.
Sessions
Sessions sind eine Art Cookies (einfach ausgedrückt), die die Einstellungen über mehrere Seiten
hinweg speichern.
So erstellt man mit PHP eine Session:
session_register('verified');
Eine Session mit dem Namen verified wird erstellt. Sie bleibt solange aktiv, bis sie bewusst
gelöscht wird oder der Browser geschlossen wird. Man kann natürlich auch die Lebenszeit der
Session explizit angeben.
$_SESSION['verified']
=
$name;
Eine Session kann auch mehrere Variablen enthalten. Hier wird zum Beispiel der Inhalt der
Variablen $name als Sessionvariable in der Session verfied abgespeichert.
Auslesen der Daten oder des Existierens einer Session:
if (session_is_registered('name')) {...}
Wenn die Variable name in einer Session besteht ist das Resultat TRUE (wahr), andernfalls FALSE
(falsch) ausgegeben
$name = $_SESSION['verfied'];
Die Variable $name enthält nun den Wert der Sessionvariable verified.
Löschen einer Session:
session_unregister('verified')
Die Session verfied wird nun gelöscht.
Weiter Informationen unter:
http://www.webrankinfo.com/analyses/php/sessions.php
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
Seite 28/31
PHP - Online
http://cours.creuter.lu
Zum Passwortschutzskript
Gehe folgendermaßen vor:
1.
2.
3.
4.
Erstelle mit phpmyadmin eine Tabelle, welche die Logindaten enthält
Erstelle eine HTML-Seite mit einem Formular zum Login
Diese Seite ruft sich selbst auf. Wenn die eingegebenen Werte mit denen aus der
Datenbank übersinstimmen wird eine Session erstellt und eine neue Seite wird aufgerufen,
andernfalls erscheint wieder das Login
Jede Seite die geschützt sein soll, prüft zuerst, ob die Session erstellt wurde, wenn nicht
verweist sie auf das Login.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 29/31
PHP - Online
Lektion 9 (Applikation: Forum)
Im Internet findet man sehr viele fertige Skripte zu fast allen denkbaren Anwendungsgebieten. Ziel
dieses Kursus ist es ja, bestehende Skripte auf die eigenen Bedürfnisse und Serverumgebung
anzupassen, nicht selbst komplexe Skripte schreiben zu können. Nachdem in den vorigen
Lektionen nun die Syntax und Grundregeln von PHP besprochen wurden, versuchen wir nun in
dieser und der nächsten Lektion bestehende Skripte in einen eigenen Website einzubinden.
Hier einige Adressen wo du fertige PHP-Skripte findest:
http://www.hotscripts.com/PHP/Scripts_and_Programs/index.html
http://phpwelt.de/
http://www.php-resource.de/freescript/scripts.php?cat=dir&do=PHP
und noch viele mehr
Bemerke, dass diese Skripte meistens kostenlos sind. Aus Respekt vor dem Autor der Skripte sollte
man die Copyright Vermerke jedoch im Skript enthalten lassen.
Forum
Zuerst wollen wir ein Forum-Skript einsetzen. Foren werden heute recht häufig in vielen
Einsatzbereichen benutzt.
Ich
schlage
dir
vor
folgendes
artmedic-Forum von Ellen Baitinger.
Skript
in
deinem
Website
einzusetzen:
Zum Einfügen lese die README.HTM und ändere die PHP-Dateien nach deinen Wünschen um. Du
kannst das Forum hier testen.
Zum Einfügen lese die README.TXT und ändere die Datei CONFIG.PHP nach deinen Wünschen um.
Natürlich kannst du auch andere Skripte einbinden. Bedenke jedoch, dass manche Skripte für
Anfänger noch relativ schwierig einzubinden sein können. Erst die Übung macht den Meister.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 30/31
PHP - Online
Lektion 10 (Applikation: Bildergallerie)
Bildergallerie
Auch hierzu gibt es natürlich tausende Skripte. Zum Aufwärmen schlage ich dir folgendes einface
Skript vor: artmedic photoalbum 3.0, ebenfalls von Ellen Baitinger.
Versuche auch dieses in deinen Site zu integrieren. Hier kannst du die Bildergallerie testen.
Bemerke, dass diese beiden Skripte relativ einfach sind und deshalb auch keinen so großen
Funktionsumfang haben wie viele andere. Doch sie erledigen ihre Arbeit sehr gut und sind als erste
Übung sehr gut geeignet.
Claude Reuter
http://www.creuter.lu
12.11.2005
Formation
http://cours.creuter.lu
Seite 31/31
PHP - Online
Dokumentation
Dokumentation zu diesem Kurs (fichier PDF - 466KB-version du 12.11.2005)
Beispielskripte aus dem Kurs (php.zip 16KB)
Anleitung zum Gebrauch vun FILEZILLA
Buchtipps
•
•
•
Grundlagen und Profiwissen PHP4
Jörg Krause
Hanser 3-446-21847-5
PHP für Einsteiger
Johann-Christian Hanke
KnowWare EXTRA ISBN 87-90785-85-1
PHP4 Kochbuch
Jörg Krause, Ilija Injac
HANSER 3-446-21856-4
Software
Am besten benutzt man einen WYSIWYG-Editor zum Erstellen einse Websites. Da Frontpage PHP
nur sehr schlecht unterstützt, empfehle ich Macromedia Dreamweaver, oder als gratis Alternative
den OpenSource Editor NVU.
Allerdings kann man die Seiten mit den integrierten Skripten auch einfach in einem Texteditor
erstellen.
Claude Reuter
http://www.creuter.lu
12.11.2005
Herunterladen