Programmieren mit PHP Mag. Andreas Starzer weloveIT – EDV Dienstleistungen URL Uniform Resource Locator Bestandteile sind: – – – – Protokoll Server (Host) Pfad zur Ressource am Server Parameter Beispiel: – http://data.univie.ac.at/kurs/bin/vortrag.pl?vortrag=php1-1 Folie 2 HTML und HTML-Formulare HTML Hypertext Markup Language definiert Tags (Befehle) um Text und sonstige Elemente in bestimmter Art darzustellen HTML-Dateien werden vom Browser durch Angabe der URL von einem Web-Server angefordert und dargestellt Folie 3 HTML und HTML-Formulare HTML-Formulare bieten dem Benutzer die Möglichkeit der Eingabe können abgesendet werden verwenden die gängigen WindowsFormularbestandteile, wie – – – – Eingabefelder Drop-Down und Listenfelder Optionsgruppen und Check-Boxes Befehlsschaltflächen Folie 4 HTML und HTML-Formulare Formular wird mit dem Tag <form> eingeleitet und mit </form> beendet. Folgende Attribute sind dabei wichtig: – Name="..." Name des Formulars – Action="..." URL des Scripts – Method="..." Datenversand mit get oder post hat Standarbuttons für Absenden und Reset – <input type="submit" value="Beschriftung"> – <input type="reset" value="Beschriftung"> Folie 5 HTML und HTML-Formulare Wichtige Formularobjekte Einzeiliges Textfeld <input>, Attribute: – Name="..", Size=".." , Maxlength="..", Value=".." Mehrzeiliges Textfeld <textarea> </textarea> Abschließender Tag ist nötig, Attribute: – Name="...", Rows="...", Cols="..." Checkbox <input type="chekbox"> – Name="...", Value="...", checked Folie 6 Das CGI CGI (Common Gateway Interface) erlaubt es ein Programm am Webserver zu starten über dieses können diesem Programm auch Daten übermittelt werden sendet dann die von dem gestarteten Programm erzeugte Ergebnisseite zurück Folie 7 Das CGI Programmiersprachen erlaubt ist alles, was am Server ausgeführt werden kann standardmäßig verfügbar sind zumeist Perl und PHP Folie 8 Das CGI PHP-Scripts können dann ganz normal über die URL aufgerufen werden werden nach Aufruf vom Server ausgeführt erzeugen dann eine Ergebnisseite oder rufen eine andere anzuzeigende Seite auf Folie 9 Abruf HTML-Seite Anfrage (URL) Client • sucht HTML-Seite • liefert Seite HTML-Seite Webserver Folie 10 Abruf PHP-Seite Anfrage (URL) Client • sucht PHP-Seite • führt PHP-Code aus • liefert Ergebnis Ergebnisseite Webserver Folie 11 PHP-Basics PHP (Hypertext Preprozessor) ist einfach zu lernen schnell auf den Homepagebereich spezialisiert Code wird in HTML-Seiten eingebettet ist eine Interpretersprache Folie 12 PHP-Basics Code wird mittels <?php … ?> in HTML-Seiten eingebettet. Dateiendung der Seiten ist .php Folie 13 PHP-Beispiele Beispiele 1 – 10 betreffen nur PHP Beispiel 11 betrifft PHP und MySQL Folie 14 PHP-Beispiele Das Programmieren mit PHP wird in den nun folgenden Beispielen Schritt für Schritt erklärt. Folie 15 Beispiel 1 <html> <head> <title>PHP Hello world</title> </head> <body> <?php echo "Hello World"; ?> </body> </html> Folie 16 Beispiel 2 $form=$_POST["txt_Name"]; echo "Ihr Name ist <b>" . $form . "</b>"; Folie 17 Beispiel 3 $form=$_POST["txt_Geburtsdatum"]; $Tag=substr($form,0,2); $Monat=substr($form,3,2); $Jahr=substr($form,6,4); $Alter_sek=time() - gmmktime(0,0,0,$Monat,$Tag,$Jahr); $Alter = $Alter_sek/60/60/24; echo $Tag . $Monat . $Jahr; echo "Ihr Alter: " . number_format($Alter,0,",",".") . " Tage"; Folie 18 Beispiel 4 $Zahl=$_POST["txt_Startzahl"]; echo "<tr><td>" . $Zahl; for ($i=2; $i<=10; $i++) { $Zahl = $Zahl * $i; echo "<td> * " . $i . "<tr><td>" . $Zahl; } for ($i=2; $i<=10; $i++) { $Zahl = $Zahl / $i; echo "<td> / " . $i . "<tr><td>" . $Zahl; } Folie 19 Beispiel 5 $Spalten=$_POST["txt_Spalten"]; $Zeilen=$_POST["txt_Zeilen"]; for ($i=1; $i<=$Zeilen; $i++) { echo "<tr>"; for ($j=1; $j<=$Spalten; $j++) { echo "<td>Z" . $i . "S" .$j; } } Folie 20 Beispiel 6 $Zahl=$_POST["txt_Zahl"]; $IsPrim=True; for ($i=2; $i<$Zahl; $i++) { if ($Zahl%$i==0) { $IsPrim=False; } } if ($IsPrim==True) { echo $Zahl . " ist eine Primzahl"; } else { echo $Zahl . " ist keine Primzahl"; } Folie 21 Beispiel 7 echo "<tr><td>1<td>2"; $AnzahlPrim=1; $Zahl=3; do { $IsPrim=True; for ($i=2; $i<$Zahl; $i++) { if ($Zahl % $i==0) { $IsPrim=False; } } if ($IsPrim==True) { $AnzahlPrim++; echo "<tr><td>" . $AnzahlPrim . "<td>" . $Zahl; } $Zahl = $Zahl + 2; } while ($AnzahlPrim<100); Folie 22 Beispiel 8 $Farbe = $_POST["cmb_Farbe"]; for ($i=255; $i>=0; $i--) { $Color = Dechex($i); if (strlen($Color)==1) { $Color = "0" . $Color; } switch ($Farbe) { Case "rot": $HTMLColor = $Color . "0000"; break; Case "gruen": $HTMLColor = "00" . $Color . "00"; break; Case "blau": $HTMLColor = "0000" . $Color; break; } echo "<tr><td bgcolor='" . $HTMLColor . "'>&nbsp;"; } Folie 23 Beispiel 9 $Pfad="C:\\Hosting\\laufwerk.it\\php\\9counter.txt"; $Datei=file($Pfad); $OpenFile=fopen($Pfad,"w+"); fwrite ($OpenFile,$Datei[0]+1); fclose($OpenFile); echo „Aufrufe bisher " . ($Datei[0]+1) . " Mal"; Folie 24 Beispiel 10 $Vorname=$_POST["txtVorname"]; $Nachname=$_POST["txtNachname"]; $Strasse=$_POST["txtStrasse"]; $PLZ=$_POST["txtPLZ"]; $Ort=$_POST["txtOrt"]; $Zeile = $Vorname . ";"; $Zeile = $Zeile . $Nachname . ";"; $Zeile = $Zeile . $Strasse . ";"; $Zeile = $Zeile . $PLZ . ";"; $Zeile = $Zeile . $Ort ."\r\n"; $Pfad="C:\\Hosting\\laufwerk.it\\php\\10daten.txt"; $OpenFile=fopen($Pfad,"a"); fwrite ($OpenFile,$Zeile); fclose($OpenFile); echo "Folgender Eintrag wurde an die Datei " . $Pfad . " eingefügt:<br>"; echo $Zeile; Folie 25 MySQL DBMS Administration per phpmyadmin https://www.univie.ac.at/phpmyadmin/ 1 Datenbank verfügbar – Name ist Username Daten werden in Tabellen abgelegt Daten werden durch SQL-Abfragen manipuliert Folie 26 MySQL - Vorbereitungen Einloggen Datenbank auswählen Tabelle neu anlegen Felder definieren Probedaten in Felder eintragen Folie 27 SQL Structured Query Language Datenbanksprache für relationale Datenbanken Befehle an die Datenbank werden als einfache Zeichenfolgen gesendet Ansi-Standard (Hersteller unabhängig) Ermöglicht die komplette Verwaltung der Datenbank, vor allem – – – – Daten auswählen Daten verändert Daten löschen Daten hinzufügen Folie 28 SQL – Auswählen SELECT * FROM Tabelle WHERE Feldname=Kriterium ORDER BY Feldname Folie 29 SQL – Löschen DELETE FROM Tabelle WHERE Feldname=Kriterium Folie 30 SQL – Anfügen INSERT INTO Tabelle ( Feldname, Feldname, … ) VALUES ('Text', Zahl, …) Folie 31 SQL – Ändern UPDATE Tabelle SET Feldname = 'Text', Feldname=Zahl WHERE Feldname=Kriterium Folie 32 PHP und MySQL Verbindung zum MySQL-Server herstellen mysql_connect("Server","User","Passwort"); Folie 33 PHP und MySQL Verbindung zur Datenbank herstellen @mysql_select_db("Datenbank") Folie 34 PHP und MySQL SQL-Statement an Server senden $query="SQL Statement"; $result=mysql_query($query); Wenn SQL Statement Daten zurück liefert, können diese behandelt werden durch mysql_result($result,Zeile,"Feldname") Folie 35 PHP und MySQL Verbindung zur Datenbank trennen mysql_close(); Folie 36 Das war´s Danke für die Aufmerksamkeit Viel Spaß mit PHP Nicht vergessen – Das EDV-Zentrum bietet PHP-Workshops an Schönes Wochenende Folie 37