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