Programmieren mit PHP
Mag. Andreas Starzer
weloveIT – EDV Dienstleistungen
Folie 2
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 3
HTML und HTML-FormulareHTML 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 4
HTML und HTML-Formulare
HTML-Formulare bieten dem Benutzer die Möglichkeit der Eingabe können abgesendet werden verwenden die gängigen Windows-
Formularbestandteile, wie– Eingabefelder– Drop-Down und Listenfelder– Optionsgruppen und Check-Boxes– Befehlsschaltflächen
Folie 5
HTML und HTML-FormulareFormularwird 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 6
HTML und HTML-FormulareWichtige 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 7
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 8
Das CGI
Programmiersprachen
erlaubt ist alles, was am Server ausgeführt werden kann
standardmäßig verfügbar sind zumeist Perl und PHP
Folie 9
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 10
Abruf HTML-Seite
Client Webserver
Anfrage (URL)
HTML-Seite
• sucht HTML-Seite• liefert Seite
Folie 11
Abruf PHP-Seite
Client Webserver
Anfrage (URL)
Ergebnisseite
• sucht PHP-Seite• führt PHP-Code aus• liefert Ergebnis
Folie 12
PHP-BasicsPHP (Hypertext Preprozessor) ist einfach zu lernen schnell auf den Homepagebereich spezialisiert Code wird in HTML-Seiten eingebettet ist eine Interpretersprache
Folie 13
PHP-BasicsCode wird mittels
<?php … ?>
in HTML-Seiten eingebettet.
Dateiendung der Seiten ist .php
Folie 14
PHP-Beispiele
Beispiele 1 – 10
betreffen nur PHP
Beispiel 11
betrifft PHP und MySQL
Folie 15
PHP-Beispiele
Das Programmieren mit PHP wird in den nun folgenden Beispielen Schritt für Schritt erklärt.
Folie 16
Beispiel 1
<html>
<head>
<title>PHP Hello world</title>
</head>
<body>
<?php
echo "Hello World";
?>
</body>
</html>
Folie 17
Beispiel 2
$form=$_POST["txt_Name"];
echo "Ihr Name ist <b>" . $form . "</b>";
Folie 18
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 19
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 20
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 21
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 22
Beispiel 7echo "<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 23
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 . "'> ";
}
Folie 24
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 25
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 26
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 27
MySQL - Vorbereitungen
Einloggen Datenbank auswählen Tabelle neu anlegen Felder definieren Probedaten in Felder eintragen
Folie 28
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 29
SQL – Auswählen
SELECT * FROM Tabelle
WHERE Feldname=Kriterium
ORDER BY Feldname
Folie 30
SQL – Löschen
DELETE FROM Tabelle
WHERE Feldname=Kriterium
Folie 31
SQL – Anfügen
INSERT INTO Tabelle
( Feldname, Feldname, … )
VALUES
('Text', Zahl, …)
Folie 32
SQL – Ändern
UPDATE Tabelle
SET Feldname = 'Text', Feldname=Zahl
WHERE Feldname=Kriterium
Folie 33
PHP und MySQL
Verbindung zum MySQL-Server herstellen
mysql_connect("Server","User","Passwort");
Folie 34
PHP und MySQL
Verbindung zur Datenbank herstellen
@mysql_select_db("Datenbank")
Folie 35
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 36
PHP und MySQL
Verbindung zur Datenbank trennen
mysql_close();
Folie 37
Das war´s
Danke für die Aufmerksamkeit
Viel Spaß mit PHP
Nicht vergessen – Das EDV-Zentrum bietet PHP-Workshops an
Schönes Wochenende