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