Website mat PHP - cours.creuter.lu

die Serverumgebung


Letztes Update: 01.01.1970,01:00

<?php echo "<br>Letztes Update: ".date("d.m.Y,H:i",filemtime(basename($PHP_SELF))); ?>


Lektion 2 (Textausgaben und Rechnen):

Frage-Antwort

head enthält: <style type="text/css">
#Text01 { font:bold 12pt Times; }
#Text02 { font:italic 1cm Helvetica; }
#Text03 { font:small-caps 14pt Verdana; }

<p id="Text01"><? echo "Geet et?\n"; ?></p>
<p id="Text02"><? echo "Geet et?\n"; ?></p>
<p id="Text03"><? echo "Geet et?\n"; ?></p>
# Kommentar: \n erzeugt neue Zeile;

a href="test1b.php">Antwort

<? echo "Jo, mee ech schweessen. All klenge Fortschrëtt ass haartemkämpft."; ?>

Nachricht

<? echo "Hallo \"Welt\"!\n"; ?>
<!--/* dieser Kommentar kann über mehrere Zeilen gehen ' $ " \ müssen maskiert werden. Man tut das indem man dem Zeichen ein \ voransetzt. */-->

Rechnen

<? echo "300 + 40 + 9 =";echo 300+40+9; ?>
<? echo "300 - 40 - 9 =";echo 300-40-9; ?>
<? echo "300 • 40 • 9 =";echo 300*40*9; ?>
<? echo "300 : 40 =";echo 300/40; ?>
<? echo "3,3 : 12 =";echo 3.3/12; ?>
<? echo "2 20 =";echo pow(2,20); ?>
<? echo "3,4567 auf die Hundertstel gerundet = ";echo round(3.4567,2);?>

<? echo "Zufallszahl zwischen 100 und 1000 : ";echo mt_rand(100,1000); ?>

Beim Aktualisieren der Seite entsteht eine neue Zufallszahl.

Lektion 3 (Variablen in PHP):

zwei Variabeln

<?
$vorname="Claude";
$nachname="Schmit";
echo "Moien ".$vorname." ".$nachname."- winni bass de fäerdeg?";
Kommentar: /* Wann een e puer Variablen hannereneen setzt kënnt e Punkt vir- an hannendrun. \n
Mat <h3></h3> krut ech de Moien formatéiert, <font size="+1"></font> huet nët fonktionnéiert.
-De problem as bei dass do nees Gaensefuessecher innerhalb deene vum echo befehl sin.
Mat < font size='+1'> </font> geet et.*/ ?>

Datum des letzten Updates anzeigen

Für den Besucher ist es oft hilfreich und interessant zu wissen, wann eine Seite zum letzten Mal aktualisiert wurde.
Durch eine einfache Code-Zeile, die am Ende jeder Seite eingebunden wird, ist dies möglich ohne jeweils den Namen der
PHP-Seite angeben zu müssen. Mit filemtime wird automatisch das Datum der letzten Änderung zurückgegeben.
Die Server-Variable "$PHP_SELF" enthält den Namen der geladenen Datei bzw. Seite.
Die Funktion basename stellt dabei sicher, das nur der Name und nicht der gesamte Pfad zurückgegeben wird. Beispiel /* Letzter Update: 01.01.1970,01:00 */ Ergebnis: Letzter Update: 25.02.2000, 18:38
Die Code-Zeile läßt sich auch per include an jeder beliebigen Stelle einer Seite einbinden.

Arrays

<? $vorname = array("Claude","Carine","Max","Ben","Tom","Louis","Sarah","Georges","Christiane"); echo "Hallo, " , $vorname[1] , " und " , $vorname[4] , "!"; ?>

<? $vorname = array("C"=>"Claude","Ca"=>"Carine","M"=>"Max","B"=>"Ben","T"=>"Tom","L"=>"Louis","S"=>"Sarah","G"=>"Georges","Ch"=>"Christiane");
echo "Hallo, " , $vorname["M"] , " und " , $vorname["B"], "!"; ?>

<?$vorname = array("Claude","Carine","Max","Ben","Tom","Louis","Sarah","Georges","Christiane"); natsort ($vorname); reset ($vorname); while (list ($key, $val) = each ($vorname)) { echo "$key = $val\n"; } ?>

Datum&Zeit

<? echo "Haut ass " , date("l"), ", den " , date("j.n.Y"), ".";?>
<? echo "Dat ass den " , date("z"), ". Dag am Joer. " ;?>
<? echo "Et ass déi " , date("W"), ". Woch vum Joer. " ;?>

<?echo "Et ass elo genee " , date("H:i:s"), "."; ?>

Klick op "Aktualisieren", fir déi aktuell Zäit unzeweisen.

Lektion 4 (Schleifen und andere Kontrollstrukturen):

for-Zählschleife

<? /* Wenn man einen Programmteil mehrfach durchlaufen will, und es eine obere und untere Grenze gibt, benutzt man die for-Schleifen. */
for ($a=1500;$a>=50;$a=$a-12){ echo "$a, "; }
/* Wie immer steht der Ausführungsblock in geschweiften Klammern({...}). Die erste Zeile gibt an, dass die Schleife solange durchlaufen (ab 1500 beginnend) wird bis $a den Wert 50 hat. $a=$a-12 dekrementiert den Zähler um 12. Anstelle $a=$a-12 kann man auch andere Rechenoperationen verwenden, zum Beispiel $a-- , $a++ , ... */ ?>

if-Auswertung:Wochentag

<? $tag=array("Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"); if (date("w")==0) { /* Beachte, dass die Bedingung (IF-Anweisung) in runden Klammern ((...)) stehen muss.
Der oder die auszuführenden Befehle stehen in geschweiften Klammern ({...})! */ echo "

Heute geht's wieder los!

";} elseif (date("w")==4) { echo "

Heute ist der letzte Schultag dieser Woche!

";} elseif ((date("w")==5)or(date("w")==6)) { echo "

Genieße das Wochenende!

";} else { echo "

Heute ist ein Arbeitstag.

"; } ?>

SWITCH-Auswertung:Wochentag

<? $tag=array("Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag");
switch(date("w")) { case 0: echo "Heute geht's wieder los!"; break;
/* Die switch-Anweisungen lesen sich besser als die if-Blöcke.
Beachte, dass bei den case-Abschnitten jeweils ein Doppelpunkt (:) folgt
und jede case-Anweisung mit break beendet wird.
Auch müssen alle case-Anweisungen in geschweiften Klammern ({...}) stehen.
*/ case 4: echo "Heute ist der letzte Schultag dieser Woche!"; break;
case 5: case 6: echo "Genieße das Wochenende!"; break;
default: echo "Heute ist ein Arbeitstag."; break;
# Die default-Anweisung steht für alle anderen nicht in den vorhergehenden case-Anweisungen erwähnten Werte.
} ?>

Glücksspiel

<? $zufall=mt_rand(0,10); echo "

$zufall

"; switch ($zufall){ case 0: case 1: case 2: echo "

Das ist aber nicht viel!

"; break;
case 3: case 4: case 5: echo "

Na ja, ein wenig mehr könnte es schon sein!

"; break;
case 6: case 7: echo "

Nicht schlecht!

"; break;
case 8: case 9: echo "

Da hast du aber Glück gehabt!

"; break;
case 10: echo "

Bingo!

"; break;
} ?>

Kalender

<? $tag=array("Do","Fr","Sa","So","Mo","Di","Mi"); $d= 1; $i = 0;
echo ($tag[$i]." ".$d.".1.<br>");
while ($d<=30) {
$d++; $i++; echo ($tag[$i%7]." ".$d.".1.<br>"); }
/* % as de Modulo-Operator, also de Rescht vun der Divisioun (hei duerch 7) */
?>

Funktion: Eurowechsler

<? function euro2luf ($euro) { $luf = $euro * 40.3399; return round($luf); /* Wird die return() Anweisung innerhalb einer Funktion aufgerufen, wird die Ausführung der Funktion sofort beendet
und das Argument als Wert des Funktionsaufrufs zurückgegeben.Da return() ein Sprachkonstrukt und keine Funktion ist,
braucht man die Klammern um die Argumente nicht zu schreiben -- tatsächlich ist es eher gebräuchlich, diese wegzulassen,
als die Klammern zu benutzen, obwohl es keinen Unterschied ausmacht.

Die Funktion round gibt die übergebene Zahl in kaufmännischer Rundung zurück, d.h. für Werte von 5 und größer wird die vorherige Stelle um eins erhöht, ansonsten werden die folgenden Stellen lediglich abgeschnitten. Die Angabe der "Anzahl der Nachkommastellen" ist optional, wird diese weggelassen, so erfolgt die Rundung auf ganze Zahlen.

*/ } echo "25 Euro sind"; echo (euro2luf(25)); echo " LUF."; /* echo (euro2luf(25)); Diese Zeile ruft die Funktion euro2luf auf und übergibt ihr den Wert. Wann een eréischt zum Schluss mat zoumëcht, gët och (euro2luf(25)) méi grouss geschriwen. */ ?>
<? function luf2euro ($luf) { $euro = $luf / 40.3399; return round($euro,2); } echo "
"; echo "2000 LUF sind "; echo (luf2euro(2000)); //diese Zeile ruft die Funktion euro2luf auf und übergibt ihr den Wert echo " EURO."; ?>

Funktion mit mehreren Parametern: Einmaleins

flexloop

<head

<? function flexloop($von, $bis, $schritt) { echo "
Es folgt eine Schleife von $von"; echo " bis $bis mit der Schrittweite $von
"; echo "Das sind die 20 ersten Zahlen der $von-er Reihe.
"; for ($i=$von; $i<=$bis; $i=$i+$von) { echo "$i, "; } } ?> </head>

<body>

<? echo "

2-er Reihe"; flexloop(2,40,2); echo "..."; echo "

3-er Reihe"; flexloop(3,60,3); echo "..."; echo "

4-er Reihe"; flexloop(4,80,4); echo "..."; echo "

5-er Reihe"; $x = 5; $y = $x*20; flexloop($x,$y,$x); echo "..."; echo "

6-er Reihe"; $x = $x+1; $y = $x*20; flexloop($x,$y,$x); echo "..."; echo "

7-er Reihe"; $x = $x+1; $y = $x*20; flexloop($x,$y,$x); echo "..."; echo "

8-er Reihe"; $x = $x+1; $y = $x*20; flexloop($x,$y,$x); echo "..."; echo "

9-er Reihe"; $x = $x+1; $y = $x*20; flexloop($x,$y,$x); echo "..."; echo "

10-er Reihe"; $x = $x+1; $y = $x*20; flexloop($x,$y,$x); echo "..."; echo "

11-er Reihe"; $x = $x+1; $y = $x*20; flexloop($x,$y,$x); echo "..."; echo "

12-er Reihe"; $x = $x+1; $y = $x*20; flexloop($x,$y,$x); echo "..."; ?>

Lektion 5 (Formulare und Mailversand):

Flächeninhalt berechnen

Flaeche.html:

<form action="Flaeche.php" method="POST"> <h2>Maße des Rechtecks:
Seite a: <input size="5" name = "a">
<p>Seite b: <input size="5" name = "b">

Maßeinheit: <input type="radio" name="einheit" value="km"> km
<input type="radio" name="einheit" value="hm"> hm
<input type="radio" name="einheit" value="dam"> dam
<input type="radio" name="einheit" value="m"> m
<input type="radio" name="einheit" value="dm"> dm
<input type="radio" name="einheit" value="cm"> cm
<input type="radio" name="einheit" value="mm"> mm
<input type="submit">
<input type="reset">
</form> </p>

Wichtig:Bei Dezimalzahlen musst du anstatt eines Kommas einen Punkt setzen!

Flaeche.php:

<?php echo "Seite a = $a ";
echo "$einheit .<br>";
echo "Seite b = $b ";
echo "$einheit .<br>";
echo "<p>Formel: ";
echo "A = a · b</p>";
$flaeche = $a*$b;
switch($einheit) {
case dam: echo "Der Flächeninhalt dieses Rechtecks beträgt $flaeche ";
echo "a";
break;
case hm: echo "Der Flächeninhalt dieses Rechtecks beträgt $flaeche ";
echo "ha.";
break;
default: echo "Der Flächeninhalt dieses Rechtecks beträgt $flaeche ";
echo "$einheit";
echo "²."; } ?>

Addieren, subtrahieren, multiplizieren, dividieren

<form action = "addiere.php" method="POST"> <h2>Berechne die Summe von: <p>1.Wert: <input size="5" name = "a"></p>
<p>2.Wert: <input size="5" name = "b"></p>
<p>3.Wert: <input size="5" name = "c"></p>
<input type = "submit"> <input type = "reset"> </form> <p>
<h2>Berechne die Differenz von:
<p>Ausgangswert: <input size="5" name = "a"></p>
<p>1.Subtrahend: <input size="5" name = "b"></p>
<p>2.Subtrahend: <input size="5" name = "c"></p>
<p>3.Subtrahend: <input size="5" name = "d"></p>
<input type = "submit"> <input type = "reset"> </form>

<p> <h2>Berechne das Produkt von:
<p>1.Wert: <input size="5" name = "a"></p>
<p>2.Wert: <input size="5" name = "b"></p>
<p>3.Wert: <input size="5" name = "c"> Gib 1 oder einen anderen Wert ein.</p> <input type = "submit"> <input type = "reset"> </form>

<p> <h2>Dividiere<input size="5" name = "a"> durch <input size="5" name = "b"> <input type = "submit"> <input type = "reset"> </form>


<br> <i>Wichtig:Bei Dezimalzahlen musst du anstatt eines Kommas einen Punkt setzen!

addiere.php

<?php echo "<h5>1.Wert = $a </h5>";
echo "<h5>2. Wert = $b </h5>";
echo "<h5>3. Wert = $c </h5>";
$summe = $a+$b+$c;
echo "<h3>Die Summe beträgt $summe.</h3>"; ?>

subtrahiere.php

<?php echo "<h2>Ausgangswert: $a </h2>";
echo "<h3>1.Subtrahend: $b </h3>";
echo "<h3>2.Subtrahend: $c </h3>";
echo "<h3>3.Subtrahend: $d </h3>";
$differenz = $a-$b-$c-$d;
echo "<h2>Die Differenz beträgt $differenz.</h2>"; ?>

multipliziere.php

<?php echo "<h3>1.Wert = $a </h3>";
echo "<h3>2. Wert = $b </h3>";
echo "<h3>3. Wert = $c </h3>";
$produkt = $a*$b*$c;
echo "<h2>Das Produkt beträgt $produkt.</h2>"; ?>

dividiere.php

<?php $quotient = $a/$b;
echo "<h3> $a : $b = $quotient</h3>"; ?>

ein einfaches Formular zum Versenden einer Nachricht

<form action="emailsenden.php" method="post"> <label> <textarea name="text" cols="40" rows="5"</textarea> </label> <p> <form>

LUF-EUR-SFR-Konverter (in derselben Datei veröffentlichen)

<p> <form action="<?php $PHP_SELF ?>" method="POST">
<p>Eingabe: <input name = "Eingabe">
<select name = "Waehrung1">
<option value = "LUF"> LUF
<option value = "EUR"> EUR
<option value = "SFR"> SFR
</select>
</p>
<p>Ausgabe:
<select name = "Waehrung2">
<option value = "LUF"> LUF
<option value = "EUR"> EUR
<option value = "SFR"> SFR
</select>
</p>
<input type="submit">
<input type="reset">
</form>
</p>
<br>
<i><b>Wichtig:Bei Dezimalzahlen musst du anstatt eines Kommas einen Punkt setzen!</i>

<br>
<basefont size="4" color="#CC00CC" face="Verdana">
<?php
echo "Eingabe = $Eingabe";
echo " $Waehrung1

";
echo "Ausgabe = $Waehrung2

";
echo "(gilt nur für den Ausgabewert: Punkt als Tausendertrennzeichen, Komma als Dezimaltrennzeichen.)

";
switch($Waehrung1) {
case LUF:
switch($Waehrung2) {
case EUR:
echo "$Eingabe LUF sind "; echo number_format($Eingabe/40.3399,2, ",", "."); echo " EUR.";
/* number_format("Zahl"[,"Dezimalstellen"][,"Dezimaltrennzeichen","Tausendertrennung"])
Erklärung
Die Funktion number_format gibt den Parameter "Zahl" in der gewünschten Formatierung als Zeichenkette zurück.
Wird lediglich der Parameter "Zahl" übergeben, so erfolgt die Ausgabe ohne Nachkommastellen und dem Komma aus Tausendergruppentrennung.
Durch den optionalen Parameter "Dezimaltrennzeichen" kann die Anzahl der auszugebenden Nachkommastellen festgelegt werden, als Dezimaltrenzeichen wird dann ein Punkt verwendet.
Die optionalen Parameter "Dezimaltrennzeichen" und "Tausendertrennung", die stets zusammen angegeben werden müssen, bestimmen, welches Zeichen für die Trennung der Nachkommastellen (i.d.R. ein Komma) und der Tausendergruppen (i.d.R. ein Punkt) verwendet wird.
Vergleiche auch sprintf.
Beispiel
<?php
$zahl = 1234567.123;
echo number_format($zahl)."
";
echo number_format($zahl,1)."
";
echo number_format($zahl,2, ",", ".");
?>
Ergebnis: 1,234,567
1,234,567.1
1.234.567,12 */
break;
case SFR:
echo "$Eingabe LUF sind "; echo number_format($Eingabe/25.8258,2, ",", "."); echo " SFR.";
break;
default:
echo "Du darfst nicht zwei Mal dieselbe Währung wählen.";
}
break;
case EUR:
switch($Waehrung2) {
case LUF:
echo "$Eingabe EUR sind "; echo number_format($Eingabe*40.3399,0, ",", "."); echo " LUF.";
break;
case SFR:
echo "$Eingabe EUR sind "; echo number_format($Eingabe*1.562,2, ",", "."); echo " SFR.";
break;
default:
echo "Du darfst nicht zwei Mal dieselbe Währung wählen.";
}
break;
case SFR:
switch($Waehrung2) {
case LUF:
echo "$Eingabe SFR sind "; echo number_format($Eingabe*25.8258,0, ",", "."); echo " LUF.";
break;
case EUR:
echo "$Eingabe SFR sind "; echo number_format($Eingabe/1.562,2, ",", "."); echo " EUR.";
break;
default:
echo "Du darfst nicht zwei Mal dieselbe Währung wählen.";
}
break;
}
?>

Claudes Gästebuch

Lektion 6 (Dateiverwaltung):

Gästebuch: Daten werden nach dem Abschicken angezeigt, in eine Datei auf dem Server geschrieben und eine Mail wird an den Webmaster verschickt

Lektion 7 (Datenbanken):

Gästebuch: Daten werden nach dem Abschicken angezeigt, in eine SQL-Datenbank geschrieben und eine Mail wird an den Webmaster verschickt

Lektion 8 (Passwortschutz):

passwortgeschützter Bereich

Lektion 9 (Forum):

zum Diskussionsforum

Lektion 10 Bildergallerie:

zur Bildergalerie