Facharbeit: Einführung in PHP

Inhalt

0. Vor-Vorwort
1. Vorwort
2. Einführung
   2.1. Einbindung in HTML
   2.2. Trennung von Instruktionen
   2.3. Kommentare
   2.4. Variablen
      2.4.1. Arrays
   2.5. Operatoren
      2.5.1. Zuweisende Operatoren
      2.5.2. Vergleichende Operatoren
      2.5.3. Logische Operatoren
      2.5.4. Verändernde Operatoren
   2.6. Kontrollstrukturen
      2.6.1. if, else, elseif
      2.6.2. for
      2.6.3. while
      2.6.4. switch
      2.6.5. include
   2.7. Funktionen
3. Anwendungsbeispiele
   3.1. Ein Gästebuch
      3.1.1. formular.html
      3.1.2. eintragen.php
      3.1.3. gaestebuch.php
   3.2. Andere Anwendungsgebiete
4. Open Source
5. Arbeitsbericht
6. Quellenverzeichnis
7. Anhang
   7.1. formular.html (Quelltext zu 3.1.1.)
   7.2. eintragen.html (Quelltext zu 3.1.2.)
   7.3. gaestebuch.html (Quelltext zu 3.1.2.)

3.1.2. eintragen.php

In diesem Script werden die Daten ausgelesen, die von formular.html übergeben wurden. Es wird abgefragt, ob die Daten komplett sind, wenn ja, dann werden die Daten in die Datenbank eingetragen, ansonsten wird dem Benutzer mitgeteilt, dass er die Daten bitte komplettieren möchte.

Nach ein wenig HTML beginnt der PHP-Block mit

<?php
Als erstes wird die Verbindung zur MySQL-Datenbank aufgebaut. "localhost" ist die Adresse des Servers, auf dem der MySQL-Server läuft, "username" und "passwort" sind jeweils Benutzername und Passwort des Benutzers (natürlich sollten "username" und "passwort" durch die wirklichen Daten ersetzt werden). "datenbank" ist der Datenbankname. Dieser ist oft gleiche den Benutzernamen.
mysql_connect ( "localhost", "username", "passwort" );
mysql_select_db ( "datenbank" );

Da keine Einträge gemacht werden sollen, die entweder keinen Namen oder keine Nachricht enthalten, wird abgefragt, ob diese Felder einen Inhalt haben.

Der Inhalt aller Formularfelder eines Formulars, welches ein Script aufgerufen hat, wird in Variablen mit entsprechenden Namen gespeichert. So ist hier der Inhalt des Felds name in $name wiederzufinden, der des Felds email in $mail, und nachricht in $nachricht.

if ( strlen($name) < 1 )
	{
		print ( "Es wurde kein Name eingegeben." );
	}

Die Funktion strlen() liefert die Länge eines Strings zurück. strlen("Karl") ergibt zum Beispiel 4. Wenn Der Benutzer keinen Namen eingibt, so ist strlen($name) kleiner als eins, und die Meldung "Es wurde kein Name eingegeben." wird angezeigt. Weiter passiert nichts.

Wurde ein Name eingegeben, wird das darauf folgende elseif evaluiert.

elseif ( strlen($nachricht) < 1 )
	{
		print ( "Es wurde keine Nachricht eingegeben." );
	}

Hier wird auf gleiche Weise die Länge der eingegebenen Nachricht geprüft, und ggf. eine Warnmeldung ausgegeben.

Wenn auch ein Nachrichtentext eingegeben wurde, wird das folgende else ausgeführt. Ob eine eMail-Adresse angegeben wurde ist unwichtig, da diese freiwillig sein soll.

else
	{
		$datum = time();

Die Funktion time() liefert das aktuelle Datum als UNIX Timestamp zurück. Dies ist die zahl der Sekunden seit den 1.1.1970, 0 Uhr.

		mysql_query ( "insert into gaestebuch (datum,name,email,nachricht) values ($datum,'".addslashes($name)."', '".addslashes($email)."', '".addslashes($nachricht)."')" );

Mit mysql_query() wird eine Anfrage an die MySQL-Datenbank geschickt. Diese kann Daten abfragen, einfügen, ändern oder löschen. In diesem Fall werden die Daten in die Datenbank geschrieben. Die Funktion addslashes() dient dazu, bestimmte Zeichen, die MySQL als Steuerzeichen verstehen könnte, mit einem Backslash zu versehen, um Probleme zu vermeiden.

Danach werden die Daten noch einmal angezeigt, inklusive Dank.

		print ( "<p><b>Folgendes wurde in das Gästebuch eingetragen:</p>" );
		print ( "<p>Name: <b>$name</b><br>\n" );
		print ( "<p>eMail: <b>$email</b><br>\n" );
		print ( "<p>Nachricht: <b>".nl2br($nachricht)."</b></p>\n" );
		print ( "<p>Vielen Dank für den Eintrag.</p>" );
	}
?>

Danach folgt abschliessender HTML-Code.

Der komplette Quelltext ist im Anhang 7.2. zu finden.

© 2002 Lasar Liepins - lasar@liepins.net - http://liepins.de/