mirror of
https://gitlab.com/harald.mueller/aktuelle.kurse.git
synced 2024-10-19 09:55:03 +02:00
482 lines
18 KiB
HTML
482 lines
18 KiB
HTML
<html>
|
||
<head>
|
||
|
||
<title>PHP-Einfach.de - PHP Einführung - Übung</title>
|
||
<meta name="Author" content="Andavos">
|
||
<meta name="Publisher" content="Andavos">
|
||
<meta name="Copyright" content="Andavos">
|
||
<link rel="stylesheet" href="css/main.css" tppabs="http://www.php-einfach.de/offline/css/main.css" type="text/css">
|
||
</head>
|
||
<body text="#000000" bgcolor="#DDDDDD" link="#004A95" alink="#004A95" vlink="#525252">
|
||
|
||
<table align="center" height="100%" width="100%" cellspacing="0" border="0" cellpadding="0">
|
||
<tr>
|
||
<td align="center" valign="middle" height="100%" width="100%">
|
||
|
||
<table height="100" width="750" cellspacing="0" border="0" cellpadding="0">
|
||
<tr>
|
||
<td height="100" bgcolor="#FFE09F" width="750"><img src="grafiken/banner_top.jpg" tppabs="http://www.php-einfach.de/offline/grafiken/banner_top.jpg" width="750" height="100" border="0" alt="">
|
||
<a name="oben"></a></td>
|
||
</tr>
|
||
</table>
|
||
|
||
|
||
|
||
|
||
<table height="650" width="750" cellspacing="0" border="0" cellpadding="0">
|
||
<tr>
|
||
<td valign="top" bgcolor="#FFE09F" width="160">
|
||
|
||
<table width="160" cellspacing="0" border="0" cellpadding="0">
|
||
<tr>
|
||
<td height="100" width="5"></td>
|
||
<td class="black" height="100" width="150">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<br><b><center><img src="grafiken/side_navigation.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_navigation.gif" width="150" height="25" border="0" alt=""></center></b>
|
||
<a target="_blank" class="blue" href="http://www.php-einfach.de/index.php"><b>»</b> Startseite</a><br>
|
||
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_news.php"><b>»</b> Newsübersicht</a><br>
|
||
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_email.php"><b>»</b> Kontakt</a><br>
|
||
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_impressum.php"><b>»</b> Impressum</a><br><br>
|
||
|
||
|
||
<center><img src="grafiken/side_community.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_community.gif" width="150" height="25" border="0" alt=""></center>
|
||
<a target="_blank" class="blue" target="_blank" href="http://forum.php-einfach.de/"><b>»</b> Forum</a><br>
|
||
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_gaestebuch.php"><b>»</b> Gästebuch</a><br><br>
|
||
|
||
|
||
<center><img src="grafiken/side_tutorials.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_tutorials.gif" width="150" height="25" border="0" alt=""></center>
|
||
<a class="blue" href="einf_php.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php.php"><b>»</b> Einführung PHP</a><br>
|
||
|
||
|
||
<a class="blue" href="einf_php_anfang.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_anfang.php"><b>»</b> Anfang</a><br>
|
||
<a class="blue" href="einf_php_erste_schritte.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_erste_schritte.php"><b>»</b> Erste Schritte</a><br>
|
||
<a class="blue" href="einf_php_variablen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_variablen.php"><b>»</b> Variablen</a><br>
|
||
<a class="blue" href="einf_php_if-anweisung.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_if-anweisung.php"><b>»</b> if-Anweisung</a><br>
|
||
<a class="blue" href="einf_php_logische_operatoren.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_logische_operatoren.php"><b>»</b> Log. Operatoren</a><br>
|
||
<a class="blue" href="einf_php_uebung1.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_uebung1.php"><b>»</b> Übung</a><br>
|
||
<a class="blue" href="einf_php_dateien.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_dateien.php"><b>»</b> Dateien</a><br>
|
||
<a class="blue" href="einf_php_schleifen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_schleifen.php"><b>»</b> Schleifen</a><br>
|
||
<a class="blue" href="einf_php_array.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_array.php"><b>»</b> Array</a><br>
|
||
<a class="blue" href="einf_php_dateien2.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_dateien2.php"><b>»</b> Dateien Teil 2</a><br>
|
||
<a class="blue" href="einf_php_datum.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_datum.php"><b>»</b> Datum & Zeit</a><br>
|
||
<a class="blue" href="einf_php_email.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_email.php"><b>»</b> Mail Funktion</a><br>
|
||
<div style="position: relative; left:15;" >
|
||
<a class="blue"href="einf_php_suchen_ersetzen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_suchen_ersetzen.php"><b>»</b> Suchen & Ersetzen</a><br>
|
||
<a class="blue" href="einf_php_nuetz_funktionen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_nuetz_funktionen.php"><b>»</b> Nützliche Funktionen</a><br>
|
||
</div>
|
||
<a class="blue" href="einf_php_sessions.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_sessions.php"><b>»</b> Sessions</a><br><br>
|
||
|
||
|
||
|
||
<a class="blue" href="einf_mysql.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql.php"><b>»</b> Einführung MySQL</a><br>
|
||
|
||
<br>
|
||
<center>
|
||
<a target="_blank" href="http://www.php-einfach.de/nav_verlinkung.php"><img src="grafiken/php-einfach.gif" tppabs="http://www.php-einfach.de/offline/grafiken/php-einfach.gif" width="88" height="31" border="0" alt="PHP-Einfach.de"></a><br><br>
|
||
|
||
<a target="_blank" href="http://www.digicount.de/"><b>Counterdienst:</b></a>
|
||
<a target="_blank" href="http://www.php-einfach.de/nav_digicount.php"><div>
|
||
<img src="grafiken/digicount_livedemo.jpg" tppabs="http://www.php-einfach.de/offline/grafiken/digicount_livedemo.jpg" border="0" alt="Digicount.de"><br>
|
||
<small>Unser werbefreier Counter- und Statistikdienst</small></div>
|
||
|
||
</a>
|
||
</center>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</td>
|
||
<td height="100" width="5"></td>
|
||
</tr>
|
||
</table>
|
||
|
||
</td>
|
||
<td valign="top" bgcolor="#FFFFFF" width="430">
|
||
|
||
<table width="430" cellspacing="0" border="0" cellpadding="0">
|
||
<tr>
|
||
<td height="100" width="10"></td>
|
||
<td valign="top" class="black" height="100" width="410">
|
||
<br>
|
||
<h3>Übung</h3>
|
||
|
||
Dann wollen wir das Gelernte mal etwas anwenden. <br><hr noshade size="1"><br>
|
||
|
||
|
||
Als erstes machen wir eine Passwortabfrage, bei der das Passwort verschlüsselt wird.<br><br>
|
||
|
||
Zuerst brauchen wir wieder ein Formular.<br><br>
|
||
|
||
Das sieht ungefähr so aus:<br>
|
||
|
||
<font color="#606060">
|
||
<pre>
|
||
<form action="seite2.php" method="post">
|
||
Benutzername:<br>
|
||
<input type="Text" name="username"><br><br>
|
||
|
||
Passwort:<br>
|
||
<input type="Password" name="passwort">
|
||
|
||
<input type="Submit" value="Absenden">
|
||
</form>
|
||
</pre>
|
||
</font><br>
|
||
|
||
Passwortabfragen sollten <b>immer</b> mit <b>post</b> übermittelt werden, denn wenn es mit <b>get</b> übermitteln wurde, würde jeder später im Verlauf sehen können, welches Passwort man benutzt.<br><br>
|
||
|
||
Jetzt kommen wir zum PHP Teil<br><br>
|
||
|
||
<font color="#606060">
|
||
<pre>
|
||
<?php
|
||
$username = $_POST["username"];
|
||
$passwort = $_POST["passwort"];
|
||
|
||
$pass = md5($passwort);
|
||
?>
|
||
</pre>
|
||
</font>
|
||
|
||
Als erstes fragen wir die übertragenden Daten ganz einfach wieder ab.<br><br>
|
||
|
||
Mit <b>md5</b> verschlüsseln wie jetzt das Passwort. Benutzt man dafür <b>md5</b> so kann dieser Verschlüsselung nicht wieder rückgängig gemacht werden. <br><br>
|
||
|
||
Ein Wort das mit <b>md5</b> verschlüsselt wurde, sieht dann ca. so aus:<br>
|
||
<i>fd0d9cdefd5d42dfa36c74a449aa8214</i> (php-einfach)<br><br>
|
||
|
||
Damit wir jetzt eine <b>if-Anweisung</b> machen können, müssen wir zuerst das Passwort in einen md5-String (Text) umwandeln. <br><br>
|
||
|
||
Dafür können wir den <a target="_blank" href="http://www.php-einfach.de/sonstiges_generator_md5.php">md5-Generator</a> benutzen, oder wir machen einen eigenen Generator.<br><br>
|
||
|
||
Unseren Code müssen wir dann so abwandeln.<br><br>
|
||
|
||
<font color="#606060">
|
||
<pre>
|
||
<?php
|
||
$username = $_POST["username"];
|
||
$passwort = $_POST["passwort"];
|
||
|
||
$pass = md5($passwort);
|
||
|
||
echo $pass;
|
||
?>
|
||
</pre>
|
||
</font>
|
||
|
||
Drücken wir auf Absenden bei dem Formular, erhalten wir das eingegebene Wort als md5-String (Text) wieder ausgegeben. Diesen Code kopieren wir uns dann.<br><br>
|
||
|
||
<b>Achtung:</b> Die md5-Funktion unterscheidet zwischen Groß- und Kleinschreibung. <br><br>
|
||
|
||
<b>c</b>lanwissen sieht umgewandelt so aus:<br>
|
||
<i>c6a7fa7d60010437e84ad75cae1fa928</i><br><br>
|
||
|
||
<b>C</b>lanwissen sieht umgewandelt so aus:<br>
|
||
<i>5d959937101f826b0b67bb3a8c1cbb27</i><br><br>
|
||
|
||
Jetzt kommt die <b>if-Anweisung</b>. Damit überprüfen wir, ob das verschlüsselte Passwort das gleiche ist, das wir gespeichert haben.<br><br>
|
||
|
||
Unser Code sieht dann so aus:<br><br>
|
||
|
||
|
||
<font color="#606060">
|
||
<pre>
|
||
<?php
|
||
$username = $_POST["username"];
|
||
$passwort = $_POST["passwort"];
|
||
|
||
$pass = md5($passwort);
|
||
|
||
if($username=="Andavos" <b>and</b>
|
||
$pass=="fd0d9cdefd5d42dfa36c74a449aa8214")
|
||
{
|
||
echo "Herzlich Willkommen";
|
||
}
|
||
else
|
||
{
|
||
echo "Login Fehlgeschlagen";
|
||
}
|
||
?>
|
||
</pre>
|
||
</font>
|
||
|
||
In der <b>if-Anweisung</b> schreiben wir jetzt unseren <b>md5-String</b> (Text) hinein.<br><br>
|
||
|
||
Drückt man bei dem Formular auf Absenden, so werden diese Daten an <b>seite2.php</b> gesendet.<br>
|
||
<b>seite2.php</b> fragt diese Eingaben ab, und verschlüsselt das Textfeld <b>passwort</b> in einen <b>md5-String</b>.<br>
|
||
Die <b>if-Anweisung</b> fragt dann ab, ob das eingegebene, verschlüsselte Passwort das gleiche ist, das in der <b>if-Anweisung</b> steht.<br><br>
|
||
|
||
|
||
<b>Was habe ich jetzt davon?</b><br>
|
||
Wenn jemand jetzt deinen Quelltext sieht, kann er nicht sofort erkennen, welches Passwort man braucht, um in den internen Bereich zu kommen.<br>
|
||
Die <b>md5</b>-Funktion ist auch wichtig, wenn man später Datenbanken benutzt, bei dem sich der User mit Passwort und Benutzername einträgt.<br><br>
|
||
|
||
Wenn man ein Passwort in einer Variable speichert, dann kann man bei manchen Free-Webspace Anbietern ganz einfach diese Variable "ausspionieren". Diese Person hat dann ihr Passwort.<br>
|
||
Wenn es aber verschlüsselt abgespeichert wurde, erhält er nur den md5-String, und weil man diesen nicht entschlüsseln kann, ist ihm dieser Code so gut wie nutzlos.<br><br>
|
||
|
||
<hr noshade size="1">
|
||
|
||
Als nächstes überprüfen wir, ob alle Felder ausgefüllt wurden.<br><br>
|
||
|
||
Wieder brauchen wir ein Formular:<br><br>
|
||
|
||
<font color="#606060">
|
||
<pre>
|
||
<form action="seite2.php" method="post">
|
||
E-Mail:<br>
|
||
<input type="Text" name="email"><br><br>
|
||
|
||
Kommentar:<br>
|
||
<textarea name="kommentar" cols="30" rows="5">
|
||
</textarea>
|
||
|
||
<input type="Submit" value="Absenden">
|
||
</form>
|
||
</pre>
|
||
</font>
|
||
|
||
In diesem Formular gibt man seine E-Mail Adresse an und ein Kommentar.<br><br>
|
||
|
||
Diese Daten werden an <b>seite2.php</b> geschickt:<br>
|
||
|
||
<font color="#606060">
|
||
<pre>
|
||
<?php
|
||
$email = $_POST["email"];
|
||
$kommentar = $_POST["kommentar"];
|
||
|
||
if($email=="" <b>OR</b> $kommentar=="")
|
||
{
|
||
echo "Bitte f<>llen Sie alle Felder aus";
|
||
}
|
||
|
||
else
|
||
{
|
||
echo "Ihr Eintrag wurde gespeichert";
|
||
}
|
||
?>
|
||
</pre>
|
||
</font>
|
||
|
||
Wie immer fragen wir zuerst die übermittelten Daten ab. <br>
|
||
Mit der <b>if-Anweisung</b> schauen wir, ob <b>beide</b> Felder ausgefüllt wurden, dazu brauchen wir <b>OR</b>.<br><br>
|
||
|
||
Wenn ein oder beide Felder leer sind, erhält der Besucher eine Fehlermeldung.<br>
|
||
Wenn er sie aber ausgefüllt hat, werden seine Eingaben gespeichert. <br>
|
||
Wie das speichern geht, erfahrt ihr später.<br><br>
|
||
|
||
Solch eine <b>if-Anweisung</b> braucht man ziemlich oft, z.B. bei Gästebüchern wird eine solche if-Anweisung fast immer eingebaut.<br>
|
||
<hr noshade size="1">
|
||
|
||
Wie bereits versprochen, kann man mit PHP mehrere (unendlich) HTML-Dokumente in einer PHP-Datei speichern.<br><br>
|
||
|
||
Dies geht ganz einfach mit der <b>GET</b> Methode.<br><br>
|
||
|
||
Deswegen braucht unser PHP-Dokument eine <b>GET-Abfrage</b>.<br><br>
|
||
|
||
Die sieht so aus:<br>
|
||
<font color="#606060">
|
||
<pre>
|
||
<?php
|
||
$seite = $_GET["seite"];
|
||
?>
|
||
</pre>
|
||
</font>
|
||
|
||
Damit haben wir jetzt als Eingabefeldnamen <i>seite</i> benutzt. Dieser Wert ist in der Variable <b>$seite</b> gespeichert. Natürlich könnt ihr auch andere Namen benutzen, dann müsst ihr aber später aufpassen.<br><br>
|
||
|
||
Wie wir bereits gelernt haben, werden Daten, die mit <b>GET</b> übermittelt werden, an die URL angehängt. Also brauchen wir kein Formular, um bestimmte Eingaben zu senden, sondern hängen wir diese einfach an die URL dran und drücken dann Enter.<br><br>
|
||
|
||
Danach brauchen wir eine <b>IF-Anweisung</b>, die prüft was eingegeben wurde.<br><br>
|
||
|
||
Diese kann so aussehen:<br>
|
||
<font color="#606060">
|
||
<pre>
|
||
<?php
|
||
if($seite=="index")
|
||
{
|
||
echo "Herzlich Willkommen auf der Indexseite";
|
||
}
|
||
?>
|
||
</pre>
|
||
</font>
|
||
Rufen wir dann im Browser diese Datei auf, erhalten wir zuerst eine leere Seite. Hängen wir aber jetzt an die URL <b>?seite=index</b> dran, erhalten wir die Ausgabe, die zwischen unserer IF-Anweisung steht.<br><br>
|
||
|
||
Somit können wir jetzt beliebig viele Unterseiten einfügen.<br><br>
|
||
|
||
Das sieht dann ca. so aus:
|
||
|
||
<font color="#606060">
|
||
<pre>
|
||
|
||
<?php
|
||
$seite = $_GET["seite"];
|
||
|
||
if($seite=="index")
|
||
{
|
||
echo "Indexseite";
|
||
}
|
||
|
||
if($seite=="start")
|
||
{
|
||
echo "Startseite";
|
||
}
|
||
?>
|
||
</pre>
|
||
</font>
|
||
|
||
Rufen wir jetzt unsere URL mit dem Anhang <b>?seite=index</b> auf, erhalten wir als Ausgabe <b>nur</b> <i>Indexseite</i>, rufen wir allerdings diese Seite mit dem Anhang <b>?seite=start</b> auf, erhalten wir als Ausgabe <b>nur</b> <i>Startseite</i>.<br><br>
|
||
|
||
Somit können wir viele Unterseiten in einer PHP-Datei speichern.<br><br>
|
||
|
||
Wenn man möchte, das der Browser eine bestimmte Seite aufruft, wenn man nichts an die URL drangehängt, brauchen wir <b>isset</b>. Damit können wir überprüfen, ob eine Variable (z.B. <b>$seite</b>) einen Inhalt besitzt. Falls wir überprüfen möchten, ob eine Variable leer ist, benutzen wir <b>!isset</b><br><br>
|
||
|
||
Das Ausrufungszeichen <b>!</b> steht für <b>NOT</b>. Die Funktion isset(); gibt entweder TRUE, sofern die Variable existiert, sonst FALSE. Das <i>NOT</i> davor dreht das Ergebnis um.<br>
|
||
Dies bedeutet, wenn die Variable existiert, wir aber !isset(); schreiben, erhalten wir ein FALSE. Wenn sie nicht existiert, ein TRUE.<br><br>
|
||
|
||
Der Script sieht dann so aus:<br><br>
|
||
|
||
<font color="#606060">
|
||
<pre>
|
||
|
||
<?php
|
||
$seite = $_GET["seite"];
|
||
|
||
if(!isset($seite))
|
||
{
|
||
$seite="index";
|
||
}
|
||
|
||
if($seite=="index")
|
||
{
|
||
echo "Indexseite";
|
||
}
|
||
|
||
if($seite=="start")
|
||
{
|
||
echo "Startseite";
|
||
}
|
||
?>
|
||
</pre>
|
||
</font>
|
||
|
||
Wenn wir die Datei ohne Anhang aufrufen, erhalten wir die Ausgabe von <b>?seite=index</b>.<br><br>
|
||
|
||
Links könnten dann so aussehen:
|
||
<font color="#606060">
|
||
<pre>
|
||
<a href="seite1.php?seite=index">Indexseite</a>
|
||
<a href="seite1.php?seite=start">Startseite</a>
|
||
</pre>
|
||
</font>
|
||
|
||
Natürlich könnten die Links auch in einer der <b>if-Anweisungen</b> stehen, ca. so:
|
||
|
||
<font color="#606060">
|
||
<pre>
|
||
<?php
|
||
$seite = $_GET["seite"];
|
||
|
||
if(!isset($seite))
|
||
{
|
||
$seite="index";
|
||
}
|
||
|
||
if($seite=="index")
|
||
{
|
||
echo "Indexseite";
|
||
echo "<a href=\"?seite=start\">Zur Startseite</a>";
|
||
}
|
||
|
||
if($seite=="start")
|
||
{
|
||
echo "Startseite";
|
||
echo "<a href=\"?seite=index\">Zur Indexseite</a>";
|
||
}
|
||
?>
|
||
</pre>
|
||
</font>
|
||
|
||
Formulare können wir auch innerhalb einer Datei verschicken, dafür müssen wir nur bei <b>action</b> den richtigen Anhang eintragen.<br><br>
|
||
|
||
Ungefähr so:<br>
|
||
<font color="#606060">
|
||
<pre>
|
||
<form action="?seite=start" method="post">
|
||
</pre>
|
||
</font>
|
||
|
||
Wenn das Formular innerhalb eines Dokumentes verschickt werden soll, reicht der Anhang, wenn wir das aber an eine andere Seite schicken möchten, dann müssen wir auch den Dateinamen angeben. <br><br>
|
||
|
||
<b>Wozu braucht man dies?</b><br>
|
||
Klar könnten wir alles in verschiedenen Dateien speichern, aber hat man z.B. bei einer Registration mehrere Schritte (z.B. 10), dann müsste man 10 Dateien anlegen, mit diesem Prinzip aber nur 1 Datei.<br> <br>
|
||
|
||
<a href="einf_php_dateien.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_dateien.php">Als nächstes Speichern wir etwas in eine Datei</a><br> <br>
|
||
|
||
<a href="http://www.php-einfach.de/nav_impressum.php">Autor Andavos</a>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div align="center"><a href="#oben">Nach oben</a></div>
|
||
</td>
|
||
<td height="100" width="10"></td>
|
||
</tr>
|
||
</table>
|
||
|
||
</td>
|
||
<td valign="top" bgcolor="#FFE09F" width="160">
|
||
|
||
<table width="160" cellspacing="0" border="0" cellpadding="0">
|
||
<tr>
|
||
<td height="100" width="5"></td>
|
||
<td valign="top" class="black2" height="100" width="150">
|
||
|
||
<br><b><center><img src="grafiken/side_news.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_news.gif" width="150" height="25" border="0" alt=""></center></b>
|
||
|
||
|
||
<a target="_blank" href="http://www.php-einfach.de/nav_news.php">News</a>
|
||
<br><br>
|
||
|
||
<b><center><img src="grafiken/side_forum.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_forum.gif" width="150" height="25" border="0" alt=""></center></b>
|
||
<a target="_blank" href="http://forum.php-einfach.de/">Forum</a>
|
||
<br><br>
|
||
|
||
<b><center><img src="grafiken/side_newsletter.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_newsletter.gif" width="150" height="25" border="0" alt="Newsletter"></center></b>
|
||
|
||
<form target="_blank" method="post" action="http://www.php-einfach.de/clanletter/save.php">
|
||
|
||
|
||
<br> <br>
|
||
<div align="center">© PHP-Einfach.de 2003 - 2007 </div>
|
||
</td>
|
||
<td height="100" width="5"></td>
|
||
</tr>
|
||
</table>
|
||
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
|
||
|
||
|
||
|
||
</body>
|
||
</html> |