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

Einführung in das Erstellen von WebPages