E-Book Startseite Karteikarten-Programm
0

Allgemeines

Nun ist es endlich soweit: Sie haben den PHP-Kurs nun fast absolviert. Der letzte Teil dieses Kurses sind die Beispiele. Hier im PHP-Kurs haben wir 2 PHP Beispiele erstellt. Wir wollen diese Beispiele für Sie Schritt für Schritt erklären. Wir machen nur aus diesem Grund eine Schritt für Schritt Anleitung um Ihnen das Programmieren etwas näher zu bringen und dass Sie dafür ein Gefühl bekommen, wie man Webseitenteile im Gesamten programmiert. Bei dem 1. Beispiel handelt es sich um eine Mini PHP integrierte Datenbank. Die 10 größten Städte der Welt sind verschiedenen Arrays gespeichert. Je nach Eingabe in dem davorigen HTML-Formular werden die zuständigen Daten aufgerufen und der Inhalt angezeigt. Es hört sich vielleicht kompliziert an, doch dass ist es überhaupt nicht. Das 2. Beispiel hat hauptsächlich mit Besucherinfo und Dateien zu tun. Die Besucherinformationen des aktuellen Benutzers werden auf der Seite angezeigt und "heimlich" gespeichert. Diese Daten könnte dann ein anderes Skript wieder ausgeben. Da wir diese Daten von Fremden Personen speichern, können wir aus Urheberrechtlichen Gründen diese nicht anzeigen, da Besucherinfos nicht an Dritte weitergegeben werden dürfen. Wir haben im 2. Beispiel unseren Banner verwendet. Diese Datei können Sie in unserem Download-/ZIP-Paket herunterladen: Hier klicken zum Downloaden... Diese Datei können Sie dann entpacken, in das Root-Verzeichnis laden und den Ordner Bilder erstellen oder ändern Sie einfach die Verzeichnisangabe der Bild-Dateien.


Eingabeformular mit Infoausgabe

Für unsere 2 Dateien (index.html und data.php) benötigen wir beides Mal das Grundgerüst von HTML.

<!DOCTYPE HTML>
<html>
 
  <head>
  </head>
 
  <body>
  </body>
 
</html>

Des Weiteren haben wir die folgenden Head-Angaben bei den beiden Dateien:

<title>PHP Beispiel</title>
 
<meta http-equiv="Content-Type" content="text/html; charset=uft-8" />
<meta name="author" content="Max Mustermann" />
<meta name="description" content="Dies ist eine Beispiel von 'Homepage-Webhilfe'. Dieses Beispiel soll das PHP programmieren leichter machen. Eine Schritt für Schritt-Erklärung gibt es ebenfalls auf dieser Webseite" />
<meta name="keywords" content="PHP, Beispiel, Homepage-Webhilfe, Programmierung" />
 
<link href="/Bilder/favicon.ico" type="image/x-icon" rel="shortcut icon" />

Nun programmieren wir aber nicht weiter gleichzeitig, sondern wollen nun die Datei index.html fertigstellen. In dieser Datei im Body-Bereich erstellen wir ein HTML-Formular. In diesem Formular erstellen wir eine Tabelle mit zwei Spalten. Wir haben dort nun ein Eingabefeld (für die Stadt) und ein Absendbutton.

<form action="data.php" method="post">
  <table>
    <tr>
      <td width="200px">Geben Sie eine Stadt ein:</td>
      <td width="200px"><input type="text" name="eingabe" /></td>
    </tr>
      <td></td>
      <td><input type="submit" name="submit" value="Suchen" /></td>
    </tr>
  </table>
</form>

Nachdem die index.html-Datei nun fertig ist, wechseln wir zur Datei data.php. Als erstes legen wir dort den Eingabewert unter der Variable $eingabe fest. Da wir als Übermittlungsmethode POST gewählt haben, benötigen wir die speziellen POST-Variablen. Da unser Programm unabhängig von Groß- und Kleinschreibung arbeitet, wandeln wir die Eingabe in kleine Zeichen um, dazu gibt es die Funktion strtolower().

$eingabe = isset($_POST['eingabe']) ? $_POST["eingabe"] : "";
$eingabe = strtolower($eingabe);

Für die verschiedenen Städte legen wir verschiedene Arrays an. Jede Information, also Land, Kontinent, Einwohnerzahl und Wikipeda-Link werden in seperaten Arrays gespeichert. Bei den Arrays handelt es sich um assoziative Arrays. Der Key der Arrays entspricht dem Städtenamen.

$land = array(
  "mexiko-stadt" => "Mexiko",
  "shanghai" => "China",
  "peking" => "China",
  "istanbul" => "Tr&uuml;kei",
  "karatschi" => "Pakistan",
  "mumbai" => "Indien",
  "moskau" => "Russland",
  "delhi" => "Indien",
  "sao paulo" => "Brasilien",
  "seoul" => "S&uuml;dkorea"
);
$kontinent = array(
  "mexiko-stadt" => "Nordamerika",
  "shanghai" => "Asien",
  "peking" => "Asien",
  "istanbul" => "Europa",
  "karatschi" => "Asien",
  "mumbai" => "Asien",
  "moskau" => "Europa",
  "delhi" => "Asien",
  "sao paulo" => "S&uuml;damerika",
  "seoul" => "Asien"
);
$einwohner = array(
  "mexiko-stadt" => "19.987.801",
  "shanghai" => "19.210.000",
  "peking" => "15.796.450",
  "istanbul" => "13.820.194",
  "karatschi" => "13.052.000",
  "mumbai" => "11.671.924",
  "moskau" => "11.551.930",
  "delhi" => "10.972.065",
  "sao paulo" => "10.832.496",
  "seoul" => "10.427.819"
);
$link = array(
  "mexiko-stadt" => "Mexiko-Stadt",
  "shanghai" => "Shanghai",
  "peking" => "Peking",
  "istanbul" => "Istanbul",
  "karatschi" => "Karatschi",
  "mumbai" => "Mumbai",
  "moskau" => "Moskau",
  "delhi" => "Delhi",
  "sao paulo" => "S%C3%A3o_Paulo",
  "seoul" => "Seoul"
);

Nun benötigen wir noch eine Abfrage für deíe Eingabe. Dazu prüfen wir mit der Funktion array_key_exists() ob die Eingabe als Keywert im Array vorhanden ist. Ist dieser vorhanden, so bauen wir uns nun unsere Ausgabe aus den verschiedenen Array-Werten zusammen.

if (array_key_exists($eingabe, $land)) {
    echo "<b>Land: </b>".$land[$eingabe]."<br />";
    echo "<b>Kontinent: </b>".$kontinent[$eingabe]."<br />";
    echo "<b>Einwohner: </b>".$einwohner[$eingabe]."<br />";
    echo "<br />";
    echo "<a href=\"http://de.wikipedia.org/wiki/".$link[$eingabe]."\">Quelle: Wikipedia</a>";
}

Als letztes wollen wir nun noch einen else-Befehl verwenden und eine Textmeldung ausgeben, falls die Eingabe nicht vorhanden ist.

else {
    echo "<i>Ihre Eingabe konnte nicht gefunden werden!</i>";
}

Das war es auch schon. Hier nochmal die 2 Dateien: Der 1. Code ist für index.html - Der 2. Code für data.php

<!DOCTYPE HTML>
<html>
 
<head>
  <title>PHP Beispiel</title>
 
  <meta http-equiv="Content-Type" content="text/html; charset=uft-8" />
  <meta name="author" content="Max Mustermann" />
  <meta name="description" content="Dies ist ein Beispiel von 'Homepage-Webhilfe'. Dieses Beispiel soll das PHP programmieren leichter machen. Ein Schritt für Schritt-Erklärung gibt es ebenfalls auf dieser Webseite" />
  <meta name="keywords" content="PHP, Beispiel, Homepage-Webhilfe, Programmierung" />
 
  <link href="/Bilder/favicon.ico" type="image/x-icon" rel="shortcut icon" />
</head>
 
<body>
  <form action="data.php" method="post">
    <table>
      <tr>
        <td width="200px">Geben Sie eine Stadt ein:</td>
        <td width="200px"><input type="text" name="eingabe" /></td>
      </tr>
        <td></td>
        <td><input type="submit" name="submit" value="Suchen" /></td>
      </tr>
    </table>
  </form>
</body>
</html>
<!DOCTYPE html>
<html>
 
<head>
  <title>PHP Beispiel</title>
 
  <meta http-equiv="Content-Type" content="text/html; charset=uft-8" />
  <meta name="author" content="Benjamin Jung, Homepage-Webhilfe" />
  <meta name="description" content="Dies ist ein Beispiel von 'Homepage-Webhilfe'. Dieses Beispiel soll das PHP programmieren leichter machen. Eine Schritt f&uuml;r Schritt-Erkl&auml;rung gibt es ebenfalls auf dieser Webseite." />
  <meta name="keywords" content="PHP, Beispiel, Homepage-Webhilfe, Programmierung" />
 
  <link href="/Bilder/favicon.ico" type="image/x-icon" rel="shortcut icon" />
</head>
 
<body>
  <?php
    $eingabe = isset($_POST['eingabe']) ? $_POST["eingabe"] : "";
    $eingabe = strtolower($eingabe);
 
    $land = array(
        "mexiko-stadt" => "Mexiko",
	"shanghai" => "China",
	"peking" => "China",
	"istanbul" => "Tr&uuml;kei",
	"karatschi" => "Pakistan",
	"mumbai" => "Indien",
	"moskau" => "Russland",
	"delhi" => "Indien",
	"sao paulo" => "Brasilien",
	"seoul" => "S&uuml;dkorea"
    );
    $kontinent = array(
	"mexiko-stadt" => "Nordamerika",
	"shanghai" => "Asien",
	"peking" => "Asien",
	"istanbul" => "Europa",
	"karatschi" => "Asien",
	"mumbai" => "Asien",
	"moskau" => "Europa",
	"delhi" => "Asien",
	"sao paulo" => "S&uuml;damerika",
	"seoul" => "Asien"
    );
    $einwohner = array(
	"mexiko-stadt" => "19.987.801",
	"shanghai" => "19.210.000",
	"peking" => "15.796.450",
	"istanbul" => "13.820.194",
	"karatschi" => "13.052.000",
	"mumbai" => "11.671.924",
	"moskau" => "11.551.930",
	"delhi" => "10.972.065",
	"sao paulo" => "10.832.496",
	"seoul" => "10.427.819"
    );
    $link = array(
	"mexiko-stadt" => "Mexiko-Stadt",
	"shanghai" => "Shanghai",
	"peking" => "Peking",
	"istanbul" => "Istanbul",
	"karatschi" => "Karatschi",
	"mumbai" => "Mumbai",
	"moskau" => "Moskau",
	"delhi" => "Delhi",
	"sao paulo" => "S%C3%A3o_Paulo",
	"seoul" => "Seoul"
    );
 
    if (array_key_exists($eingabe, $land)) {
        echo "<b>Land: </b>".$land[$eingabe]."<br />";
        echo "<b>Kontinent: </b>".$kontinent[$eingabe]."<br />";
        echo "<b>Einwohner: </b>".$einwohner[$eingabe]."<br />";
        echo "<br />";
        echo "<a href=\"http://de.wikipedia.org/wiki/".$link[$eingabe]."\">Quelle: Wikipedia</a>";
    }
    else {
        echo "<i>Ihre Eingabe konnte nicht gefunden werden!</i>";
    }
   ?>
</body>
</html>
Anzeigebeispiel
Anzeigebeispiel



Besucherinfo ausgeben und speichern

Für unsere Datei (index.php) benötigen wir das Grundgerüst von HTML.

<!DOCTYPE HTML>
<html>
 
  <head>
  </head>
 
  <body>
  </body>
 
</html>

Des Weiteren haben wir die folgenden Head-Angaben und noch diesen kleinen Style-Teil (dieser wird später für ein HTML-DIV-Element benötigt):

<title>PHP Beispiel</title>
 
<meta http-equiv="Content-Type" content="text/html; charset=uft-8" />
<meta name="author" content="Max Mustermann" />
<meta name="description" content="Dies ist eine Beispiel von 'Homepage-Webhilfe'. Dieses Beispiel soll das PHP programmieren leichter machen. Eine Schritt für Schritt-Erklärung gibt es ebenfalls auf dieser Webseite" />
<meta name="keywords" content="PHP, Beispiel, Homepage-Webhilfe, Programmierung" />
 
<link href="/Bilder/favicon.ico" type="image/x-icon" rel="shortcut icon" />
 
<style type="text/css">
<--
#info {
    width: 400px;
    height: auto;
    margin-left: 200px;
    text-align: center;
}
-->
</style>

Im obersten Teil des Body-Bereichs haben wir 2 DIV-Elemente. Im 1. DIV-Element befindet sich unser Banner. Die Style-Angaben machen wir in diesem Beispiel nicht über ID´s sondern mit dem direkten Einbau von CSS. Das kann man so machen, muss man natürlich aber nicht. Das 2. DIV-Element ist für eine Überschrift. Auch hier werden die Style-Befehle direkt eingegeben und nicht über eine ID. Die Höhe wird automatisch angepasst, da H1 von den Browsern verschieden interpretiert wird.

<div style="width: 800px; height: 200px"><img src="/Bilder/Banner.jpg" border="0" height="200px" width="800px" alt="Banner" /></div>
<div style="width: 800px; height: auto; margin-top: 25px; margin-bottom: 25px; text-align: center; color: #0000FF"><h1>Ihre aktuellen Besucherdaten</h1></div>

Nun speichern wir verschieden Besucherinformationen in verschiedenen Variablen.

$host = getHostByAddr($_SERVER["REMOTE_ADDR"]);
$ip = $_SERVER["REMOTE_ADDR"];
$browser = $_SERVER["HTTP_USER_AGENT"];
$referer = $_SERVER["HTTP_REFERER"];

Als nächstes geben wir einen Bereich aus. Dieser Bereich wurde vorher im Head-Bereich mit CSS formatiert und wird nun über die ID "info" angesprochen. Dort werden die "aktuellen Besucherinformationen" ausgegeben.

echo "<div id=\"info\">
  <b>Host:</b> $host <br />
  <b>IP-Adresse:</b> $ip <br />
  <b>Browser:</b> $browser <br />
  <b>Referer:</b> $referer <br />
</div>";

In der Variabel daten speichern wir nun die Informationen, die wir später in die Datei schreiben. Da eine Datei nichts mit <br /> anfangen kann müssen wir hier \n verwenden.

$daten = "Host: $host \n
IP-Adresse: $ip \n
Browser: $browser \n
Referer: $referer \n";

Nun legen wir den kompletten Inhalt der in die Datei geschrieben werden soll fest. Hier werden die PHP-Tags und außen herum einen mehrzeiliger Kommentar verwendet. Dies hat den Vorteil, dass die Daten in der Datei nun geschützt sind. PHP-Text würde als Fehler ausgegeben werden, da wir aber Kommentare verwenden, werden diese nicht interpretiert und bleiben somit auf dem Server. Wenn nun weitere Einträge folgen geht es in der nächsten Zeile weiter, da wir wieder den Zeilenumbruch \n verwenden.

$dateiinhalt = "<?php /* \n".$daten."\n */ ?> \n";

Nun müssen wir die Datei öffnen. Dabei legen wir die Datei fest und legen als Modus a+ fest. Jetzt wird in die Datei ($dateizugriff) der Inhalt ($dateiinhalt) geschrieben. Zum Schluss kann die Datei wieder geschlossen werden.

$dateizugriff = fopen("data.php","a+");
fwrite($dateizugriff, $dateiinhalt);
fclose($dateizugriff);

Das war auch schon alles. Hier nochmals der komplette Quellcode in Übersicht:

<!DOCTYPE HTML>
<html>
 
<head>
  <title>PHP Beispiel</title>
 
  <meta http-equiv="Content-Type" content="text/html; charset=uft-8" />
  <meta name="author" content="Max Mustermann" />
  <meta name="description" content="Dies ist eine Beispiel von 'Homepage-Webhilfe'. Dieses Beispiel soll das PHP programmieren leichter machen. Eine Schritt für Schritt-Erklärung gibt es ebenfalls auf dieser Webseite" />
  <meta name="keywords" content="PHP, Beispiel, Homepage-Webhilfe, Programmierung" />
 
  <link href="/Bilder/favicon.ico" type="image/x-icon" rel="shortcut icon" />
 
  <style type="text/css">
  <--
  #info {
      width: 400px;
      height: auto;
      margin-left: 200px;
      text-align: center;
  }
  -->
  </style>
</head>
 
<body>
  <div style="width: 800px; height: 200px"><img src="/Bilder/Banner.jpg" border="0" height="200px" width="800px" alt="Banner" /></div>
  <div style="width: 800px; height: auto; margin-top: 25px; margin-bottom: 25px; text-align: center; color: #0000FF"><h1>Ihre aktuellen Besucherdaten</h1></div>
  <?php 
  $host = getHostByAddr($_SERVER["REMOTE_ADDR"]);
  $ip = $_SERVER["REMOTE_ADDR"];
  $browser = $_SERVER["HTTP_USER_AGENT"];
  $referer = $_SERVER["HTTP_REFERER"];
 
  echo "<div id=\"info\">
    <b>Host:</b> $host <br />
    <b>IP-Adresse:</b> $ip <br />
    <b>Browser:</b> $browser <br />
    <b>Referer:</b> $referer <br />
  </div>";
 
  $daten = "Host: $host \n
  IP-Adresse: $ip \n
  Browser: $browser \n
  Referer: $referer \n";
 
  $dateiinhalt = "<?php /* \n".$daten."\n */ ?>";
 
  $dateizugriff = fopen("data.php","a+");
  fwrite($dateizugriff, $dateiinhalt);
  fclose($dateizugriff);
   ?>
</body>
</html>
Anzeigebeispiel
Anzeigebeispiel



Design:
 


Logo
Benjamin Jung
Krummstr. 9/3
73054 Eislingen

E-Mail: info@homepage-webhilfe.de
Webseite: www.homepage-webhilfe.de