PHP |
Dabei ist noch wichtig, mit welcher Dateiendung Seiten ausgestattet sein
müssen, damit auf ihnen PHP-Skripte laufen. Typisch ist .php3 oder
auch php.
PHP ähnelt C. Befehle werden durch Semikolen getrennt und die Kommentare
/* */ und // sind ebenfalls bekannt. Hinzu kommt der # aus den Shellsprachen.
Variablen werden durch ein vorangestelltes $-Zeichen gekennzeichnet und
erhalten ihren Typ durch Zuweisung eines Wertes.
Bei Betätigung des Submit-Buttons wird die Seite verarbeite.php aufgerufen.
Hier stehen die Variablen name und versenden zur Verfügung.
PHP 5.0 liest die übergebenen Variablen nicht direkt, sondern verwendet
ein assoziatives Array namens $_POST, bei dem der Variablenname als Index
verwendet wird. Das obige Beispiel muss dann so aussehen:
Die Funktion mail sendet Nachrichten per E-Mail. Der erste Parameter ist die
E-Mailadresse, der zweite der Betreff (subject) und der dritte Parameter
enthält den Inhalt der Mail.
Anstatt das Formular und die Bearbeitung in zwei Dateien aufzuteilen, kann
dies auch in einer Seite erledigt werden. Dazu kann gleichzeitig die
Fehlerbehandlung durchgeführt werden.
Die Grundidee besteht darin, dass das Formular in einer Textvariablen abgelegt
wird. In einer Variablen, die wir hier firsttime nennen, wird
festgehalten, ob die Seite das erste Mal aufgerufen wird und entsprechend
angezeigt werden muss.
Die action im Formular zeigt auf die eigene Datei namens
checkform.php.
An der Stelle, wo "Alles prima!" angezeigt wird, ist die Bearbeitung
korrekt. Es kann hier beispielsweise eine Mail mit dem Inhalt abgesetzt werden
oder zur nächsten Seite weitergeleitet werden.
Mit mysql_connect wird die Verbindung zur Datenbank aufgebaut.
Die Verbindung wird mit mysql_close wieder beendet.
Mit mysql_db_query kann ein SQL-Kommando an die Datenbank
übermittelt werden. Der Rückgabewert ist das Handle auf eine
Ergebnismenge, das mit entsprechenden Routinen ausgelesen wird.
Mit mysql_fetch_row wird Zeile für Zeile das Ergebnis
in ein Array gelesen, das die Spalten einer Zeile darstellt.
Das folgende Beispiel nimmt eine Verbindung zur lokal eingerichteten
Datenbank auf und liest aus der Tabelle customer alle Zeilen und
stellt sie im Browser in einer Tabelle dar.
Erste Schritte
Die folgenden vier Arten gibt das Manual von PHP an, um PHP in HTML-Seiten
zu integrieren:
<? echo ("this is the simplest, an SGML processing instruction\n"); ?>
<?php echo("if you want to serve XML documents, do like this\n"); ?>
<script language="php">
echo ("some editors (like FrontPage) don't like processing instructions");
</script>
<% echo ("You may optionally use ASP-style tags"); %>
<%= $variable; # This is a shortcut for "<%echo .." %>
Auswertung eines Formulars
Besonders einfach ist die Auswertung von Formularen in PHP. Zunächst muss
ein Formular erstellt werden. Als Aktion des
Formulars wird eine weitere PHP-Webseite angegeben. Jedes der
Eingabeelemente erhält dabei einen Namen. Diese Namen können auf der
aufgerufenen PHP-Webseite direkt als PHP-Variablen ausgelesen werden.
<FORM ACTION=verarbeite.php METHOD=POST>
<INPUT TYPE="TEXT" NAME="name" SIZE=30>
<BR>Per Mail versenden
<INPUT TYPE="checkbox" NAME="versenden">
<BR>
<INPUT TYPE="SUBMIT" VALUE="Abschicken">
</FORM>
<?php
echo ("Name: $name <BR>");
echo ("Versenden: $versenden <BR>");
if ($versenden=="on") {
echo ("mach mail auf");
mail("arnold@localhost", "Betreff: PHP-Test",$name);
}
?>
<?php
echo ("Name: $_POST['name'] <BR>");
echo ("Versenden: $_POST['versenden'] <BR>");
if ($_POST['versenden']=="on") {
echo ("mach mail auf");
mail("arnold@localhost", "Betreff: PHP-Test",$_POST['name']);
}
?>
<html>
<head> <title>checkform.php</title> </head>
<body>
<?PHP
// Das Formular wird in der Variablen $form abgelegt
$form="
<form action=\"checkform.php\" method=\"post\">
<input type=\"hidden\" name=\"firsttime\" value=\"y\">
<input type=\"text\" name=\"name\" size=\"20\" maxlength=\"20\" value=\"\"><br>
<input type=\"submit\" value=\"Ok\">
</form>
";
// Erst wenn das Formular erstmals angezeigt wurde, wird firsttime definiert
// PHP 4.0
// if ($firsttime!="y"):
// PHP 5.0
if ($_POST['firsttime']!="y"):
print "$form";
else:
$error="n";
if ($_POST['name']=="") :
print "<font color=\"red\">Name fehlt</font><br>";
$error="y";
endif;
if ($error=="y") :
print "$form";
else :
print "Alles prima!";
endif;
endif;
?>
</body>
</html>
Datenbankanschluss an MySQL
Im Beispiel soll auf eine MySQL-Datenbank
zugegriffen werden.
Die Aufrufe erinnern ein wenig an die C-API.
int mysql_connect(string [hostname][:port],
string [username], string [password]);
int mysql_close(int [link_identifier] );
int mysql_db_query(string database, string query, int [link_identifier] );
array mysql_fetch_row(int result);
<script language="php">
// Versuche auf die DB zuzugreifen
$dbhandle = mysql_connect("localhost", "arnold", "geheimespasswort");
$dbresult = mysql_db_query("test_arnold", "select * from customer", $dbhandle);
echo "Das ist das Ergebnis:<table border> ";
while ($row = mysql_fetch_row($dbresult)) {
echo "<tr><td>",$row[0],"</td><td>", $row[1], "</td></tr>";
}
echo "</table>";
mysql_close($dbhandle);
</script>
Literaturhinweise
Thomas Theis: PHP 4 Webserver-Programmierung für Einsteiger
W.J. Gilmore: PHP 4 professionell
| Homepage | (C) Copyright 2001, 2008 Arnold Willemer |