Hier soll ein Überblick über das Erstellen von php Programmen

Transcrição

Hier soll ein Überblick über das Erstellen von php Programmen
php
Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden.
Inhaltsverzeichnis
1.Überblick.....................................................................................................................2
2.Parameterübergabe.......................................................................................................7
3.Zugriff auf mySQL Daten .............................................................................................11
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
1/17
Überblick
1.Überblick
PHP (Hypertext Preprocessor) ist eine Skriptsprache, deren Syntax stark an C bzw. C++
angelehnt ist.
PHP Programme lösen mehr und mehr CGI Skripten ab, da die Sprache in HTML integriert ist
und ein PHP Programm nicht als eigenständiger Prozess, so wie CGI ein Skript abläuft.
Client
Client stelle Anfrage
HTTP
Server
Web Server startet PHP Modul
PHP Modul interpretiert php Kode und
erzeugt HTML Ausgabe
Client erhält Resultat
Verteilte Systeme: php.sxw
HTTP
HTML Kode wird zum Client gesendet
Prof. Dr. Alois Schütte
2/17
Überblick
Das erste Programm:
$ cat hallo.php
<html>
<head>
<title>Beispiel</title>
</head>
<body>
php start
<br>
<?php
echo "Hallo, ich bin ein PHP-Skript!";
?>
<br>
php end
</body>
</html>
$
PHP Kode ist Bestandteil einer HTML Seite.
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
3/17
Überblick
Variablen werden durch vorangestelltes $-Zeichen und Zuweisung eines Wertes definiert.
Als Typen existieren:
•
Boolean,
•
Integer,
•
Double,
•
String,
•
Array und
•
Objekt.
Der Typ wird nicht explizit angegeben, sondern aus dem Kontext der Verwendung bestimmt.
Als Kontrollstrukturen stehen die von C bekannten Sprachelemente zur Verfügung (if, while, ...).
Beispiel (Test auf Schaltjahr):
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
4/17
Überblick
$ cat schaltjahrOhneEingabe.php
<html>
<head>
<title>Schaltjahrberechnung</title>
</head>
<body>
<?php
function schaltjahr($jahr) {
// Funktion
if ($jahr%4==0 && $jahr%100!=0 || $jahr%400==0)
return true;
else
return false;
}
$x = 2004;
print "Das Jahr " . $x . " ist ";
if (schaltjahr($x))
print "<b>ein</b> ";
else
print "<b>kein</b> ";
print "Schaltjahr";
// Zuweisung
?>
</body>
</html>
$
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
5/17
Überblick
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
6/17
Parameterübergabe
2.Parameterübergabe
Durch GET und POST können einer PHP-Seite Parameter übergeben werden.
Mittels GET wird der URL einfach ein ?, dann eine Namens/Wertekombination angehängt, wobei
einzelne Parameter durch & getrennt werden:
Im PHP Programm kann einfach über den Namen des Parameter auf den Wert zugegriffen
werden:
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
7/17
Parameterübergabe
$ cat parameterMitGet.php
<html>
<head>
<title>Test</title>
</head>
<body>
par1: <? echo $_GET[par1]; ?>
<br>
par2: <? echo $_GET[par2]; ?>
</body>
</html>
$
Der Zugriff über die POST Methode erfolgt über ein HTML Formular:
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
8/17
Parameterübergabe
$ cat schaltjahr.php
<html>
<head>
<title>Schaltjahrberechnung</title>
</head>
<body>
Bitte Jahreszahl eingeben: <br>
<form method="POST">
<input type="text" name="T" size="20">
<input type="submit" value="Submit" name="B1">
</form>
<br>
<?php
function schaltjahr($jahr) {
...
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
9/17
Parameterübergabe
}
$x = $_POST[T];
if ($x!="") {
$x = (int)$x;
if ($x != 0) {
print "Das Jahr " . $x . " ist ";
if (schaltjahr($x))
print "<b>ein</b> ";
else
print "<b>kein</b> ";
print "Schaltjahr";
} else
print "Eingabe keine gueltige Jahreszahl!";
}
?>
</body>
</html>
$
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
10/17
Zugriff auf mySQL Daten
3.Zugriff auf mySQL Daten
Zum Zugriff auf Daten einer mySQL Datenbank wird zunächst eine Verbindung zum mySQL Server hergestellt, dann wird die Datenbank ausgewählt:
$ cat connect.php
<html>
<head>
<title>Beispiel</title>
</head>
<body>
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
11/17
Zugriff auf mySQL Daten
<?php
$host = "localhost";
$user = "jenni";
$passwd = "lopez";
$database = "tutorial";
echo "Verbindung zum MySQL-Server herstellen ...<br>";
$db = mysql_connect($host, $user, $passwd) or
die("Verbindung zum MySQL Server fehlgeschlagen!");
echo "Verbindung zum MySQL-Server erfolgt!<br>";
echo "mit Datenbank $database verbinden ...<br>";
@mysql_select_db($database, $db) or
die("Verbindung mit $database fehlgeschlagen!<br>");
echo "mit Datenbank $database verbunden!<br>";
?>
</body>
</html>
$
Daten selektieren kann man nach erfolgreicher Verbindung zur Datenbank, indem zunächst eine
Anfrage definiert wird und das Resultat der Abfrage verwendet wird, um eine Ausgabe zu
erzeugen.
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
12/17
Zugriff auf mySQL Daten
$ cat select.php
<html>
<head>
<title>Beispiel einer SELECT Anweisung in einer MySQL Datenbank</title>
</head>
<body>
<?php
$host = "localhost";
$user = "jenni";
$passwd = "lopez";
$database = "tutorial";
// Verbindung zur MySQL Datenbank
$db = mysql_connect($host, $user, $passwd) or
die("Verbindung zum MySQL Server fehlgeschlagen!");
@mysql_select_db($database, $db) or
die("Verbindung mit $database fehlgeschlagen!<br>");
// DB Query definieren
$sql_query = "SELECT id, edate, description "
."FROM event "
."ORDER BY edate";
// Query an Datenbank
$result = mysql_query($sql_query, $db);
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
13/17
Zugriff auf mySQL Daten
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
14/17
Zugriff auf mySQL Daten
// Ausgabe des Ergebnisses (eine Zeile pro Satz)
if ($result) {
while ($row = mysql_fetch_array($result)) {
echo $row["description"] . " " . $row["edate"] . "<br>";
}
} else
echo "Fehler bei SELECT!<br>";
?>
</body>
</html>
$
Eine schönere Ausgabe mit HTML-Tabelle:
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
15/17
Zugriff auf mySQL Daten
$ cat tabelle.php
echo "<table border=1>";
echo "<tr><td>id</td><td>date</td><td>description</td></tr>";
while ($row = mysql_fetch_array($result)) {
echo "<tr>"
."<td>".$row["id"]."</td>"
."<td>".$row["edate"]."</td>"
."<td>".$row["description"]."</td>"
."</tr>";
}
echo "</table>";
$
Einfügen ist nun einfach:
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
16/17
Zugriff auf mySQL Daten
$ cat insert.php
...
// DB Query definieren
$sql_query = "INSERT INTO event VALUES (\"2\", sysdate(), \"Genesis\")";
// INSERT an Datenbank
$result = mysql_query($sql_query, $db);
// Ausgabe ob erfolgreich
if ($result)
echo "INSERT erfolgreich!<br>";
else
echo "Fehler bei INSERT!<br>";
...
$
Verteilte Systeme: php.sxw
Prof. Dr. Alois Schütte
17/17