Befehlssammlung Informatik PHP und Formulare PHP Hinweise Groß-/Kleinschreibung PHP unterscheidet zwischen Groß- und Kleinbuchstaben. PHP Erläuterung <?php ... ?> Begrenzungszeichen (Separator). Sie können überall in der PHP-Seite stehen und trennen HTML-Tags von PHP-SkriptBefehlen. einzeiliger Kommentar, auch am Zeilenende mehrzeiliger Kommentar // /* ... + - * % */ / == <>, != <, <= >, >= Rechenoperatoren Modulo (Divisionsrest), Beispiel: $mRest = 20 % 3; $mRest hat den Inhalt 2, weil 20 / 3 = 6 Rest 2 ergibt Logische Operatoren logisches Und logisches Oder logisches Nicht logisches Entweder-Oder Vergleichsoperatoren: Gleichheit Ungleichheit kleiner, kleiner oder gleich größer, größer oder gleich PHP-Funktionen Erläuterung date(Format, Zeitangabe) Formatiert eine Zeitangabe. Beispiele date("d. M Y") date("d.m.Y", 1234567890) Sekunden seit 1.1.1970 Gibt einen booleschen Wert zurück, der angibt, ob die Variable leer ist. Gibt den abgerundeten Wert einer Fließkommazahl zurück. Beispiel: floor(1.67) ergibt 1 Gibt einen booleschen Wert zurück, der angibt, ob ein Ausdruck als Zahl oder ein numerischer String ausgewertet werden kann. Gibt einen booleschen Wert zurück, der angibt, ob ein Ausdruck als String ausgewertet werden kann. Formatier eine Zahl und gibt sie als String zurück. Beispiel: and or ! xor empty(Ausdruck) floor(float num. Ausdruck) is_numeric(Ausdruck) is_string(Ausdruck) number_format (Variable, int Dezimale, string Dezimalzeichen, string Tausenderzeichen) pi() pow(Basis, Exponent) round(Ausdruck, Stellenzahl) sqrt(num. Ausdruck) str_replace(string1, string2, string3) PHP number_format($mZ, 2, ",", ".") Liefert die Zahl für pi. Potenziert die Basis mit dem Exponenten Beispiel: pow(2, 3) ergibt 2 * 2 * 2 = 8 Rundet eine Fließkommazahl auf die angegebene Stellenzahl Gibt die Quadratwurzel einer Zahl zurück. Ersetzt alle String1 durch den String2 im String3. Beispiel: str_replace(",", ".", $mGewicht); - 1 von 5 - 24.02.2010 Befehlssammlung Informatik PHP und Formulare PHP-Kontrollstrukturen Erläuterung if (Bedingung) { Anweisungsblock } if (Bedingung) { Anweisungsblock 1 } else { Anweisungsblock 2 } switch(Variable) { case(Bedingung1): Anweisungsblock 1 break; case(Bedingung2): Anweisungsblock 2 break; ... default: Anweisungsblock n } while(Bedingung/Ausdruck) { Anweisungsblock } Bedingte Verarbeitung: Ist die Bedingung wahr, so werden die Befehle im Anweisungsblock ausgeführt. for (Init Schleifenvariable; Bedingung; Veränderung) { Anweisungsblock } Zählerschleife PHP-Methoden Erläuterung echo "Ausgabetext"; print "Ausgabetext"; Ausgabe von Text (Strings). Beispiele: print "<h2>Ihr BMI betr&auml;gt $mBMI </h2>"; echo "Zinsen: " . number_format($mZ, 2); print_r(Array) Ausgabe eines Arrays print_r($_POST) PHP-Variable Erläuterung $mVariablenname $mVariablenname = Ausdruck; Variablenname beginnt immer mit $m Wertzuweisung: Der Wert des Ausdrucks rechts vom Gleichheitszeichen wird der Variablen links vom Gleichheitszeichen zugewiesen. Beispiel: $mBMI = $mGewicht / ($mGroesse * $mGroesse); Enthält alle Daten aus methode = "post" (Datenübernahme) Beispiel: $_POST einfache Alternative: Ist die Bedingung wahr, so wird Anweisungsblock1 ausgeführt, wenn sie nicht erfüllt ist, wird Anweisungsblock2 ausgeführt. mehrfache Alternative (Fallabfrage) abweisende (kopfgesteuerte, solange-) Schleife Solange die Bedingung/der Ausdruck wahr ist, wird der Anweisungsblock wiederholt. $mGewicht = $_POST[tfGewicht]; Datentypen PHP Boolean (wahr/falsch) Integer (ganzzahlig) Fließkommazahl (float, real, double) Zeichenkette (String) - 2 von 5 - 24.02.2010 Befehlssammlung Informatik PHP und Formulare Typkonvertierung Ein bedeutender Unterschied zwischen PHP und Sprachen wie Java liegt darin, dass PHP nicht typisiert ist, d.h. dass Variablenwerte beliebige Datentypen enthalten können. In Anführungszeichen " " oder ' ' eingeschlossene Zeichen werden als String interpretiert. Eine Zahl ohne Punkt wird als Ganzzahl interpretiert. Eine Zahl mit Punkt wird als Fließkommazahl interpretiert. PHP-Session Hinweise session_start(); Wenn keine Sitzung besteht, wird eine neue erzeugt, andernfalls wird die alte Sitzung fortgeführt. Muss vor der ersten Ausgabe stehen. Zerstört eine Sitzung Globale Session-Variable vom Typ Array session_destroy(); $_SESSION $_SESSION['kdnr'] = "24001"; echo $_SESSION['kdnr']; echo '<a href="seite2.php?' . SID . '">Seite 2</a>'; Datenübernahme in die globale Session-Variable Ausgabe von Daten aus der globale Session-Variable Übergabe der SID ohne Cookies PHP-Zugriff auf MySQL-Datenbanken Erläuterung 1. Lösungsweg: objektorientiert! $dbVerbindung = new mysqli($mServer, $mBenutzer, $mKennwort, $mDatenbank); @$dbVerbindung = ... $mdbVerbindung ->close(); $abfrageErgebnis = $dbVerbindung->query($mSQL); $abfrageErgebnis ->close(); $aktuellerArtikel = $abfrageErgebnis-> fetch_object(); echo $aktuellerArtikel->Name; mysqli_connect_errno() mysqli_connect_error() num_rows Erzeugt ein Verbindungsobjekt, das mit 4 Parametern wird erstellt wird: $mServer enthält den Servername (z.B. localhost) $mBenutzer enthält den Benutzername (z.B. root) $mKennwort enthält das Benutzerpasswort $mDatenbank enthält den Datenbankname (z.B. haro) @ unterdrückt Systemfehlermeldungen Schließt ein Verbindungsobjekt. Erstellt eine Ergebnistabelle mit dem Ergebnis der Datenbankabfrage. Die Methode query() übergibt dem Verbindungsobjekt die SQL-Anweisung und empfängt von ihm das Ergebnis. Schließt eine Ergebnistabelle. $aktuellerArtikel ist ein Objekt aus der Ergebnistabelle. Die Methode fetch_objekt() übergibt das nächste Objekt aus der Ergebnistabelle an $aktuellerArtikel. Gibt den Wert einer Eigenschaft des Objekts aus. Name ist der Spaltenname aus der Datenbank. Auf Groß/Kleinschreibung muss geachtet werden. Funktion, die die Fehlernummer des letzten Aufrufs eines Verbindungsobjekts mit mysqli zurück gibt. 0 = keine Fehler Funktion, die den Fehlertext des letzten Aufrufs von mysqli_connect() zurück gibt. Eigenschaft des mysqli_result-Objekts, die die Anzahl der Zeilen des Abfrageergebnisses enthält, Beispiel if ($mErgebnis->num_rows == 0) PHP - 3 von 5 - 24.02.2010 Befehlssammlung Informatik PHP und Formulare PHP-Zugriff auf MySQL-Datenbanken Erläuterung $server $user $pass $server enthält den Servername (z.B. localhost) $user enthält den Benutzername (z.B. root) $pass enthält das Benutzerpasswort = "localhost"; = "root"; = ""; 2. Lösungsweg: $verbindung = mysql_connect($server, $user, $pass); Verbindung zum MySQL-Datenbankserver aufnehmen $verbindung = mysql_connect($server, $user, $pass) or die ("Meldung"); Falls die Datenbankverbindung fehlschlägt, wird das Skript nach der Ausgabe der Fehlermeldung abgebrochen. mysql_close($verbindung); Verbindung zum verbundenem MySQL-Server beenden Auswahl der Datenbank mysql_select_db("datenbankname"); Bsp: mysql_select_db("buecherei"); mysql_select_db("datenbankname") or die ("Meldung"); Schlägt die Aktivierung der Datenbank fehl, wird das Skript nach der Ausgabe der Fehlermeldung abgebrochen $sql = "SQL-Abfrage..."; Es wird nur die Formulierung der SQL-Abfrage unter $sql gespeichert, aber nicht das Ergebnis! Die Abfrage wird hier noch nicht ausgeführt! Bsp: $sql = "SELECT * FROM ort"; $ergebnis = mysql_query ($sql); $zeile = mysql_fetch_array($ergebnis); Ausgabe: echo $zeile[Feldname] Bsp: echo $zeile[Vorname] Oder Ausgabe: echo $zeile[FeldNr] Bsp: echo $zeile[1] x Die Datenbankabfrage wird ausgeführt und die Ergebnistabelle wird in der Variablen $ergebnis gespeichert. Aus der Ergebnistabelle wird ein Datensatz ermittelt und an die Variable $zeile übergeben Vorname ist der Spaltenname aus der Datenbanktabelle. Es wird der Vorname ausgegeben 1 meint die 2. Spalte aus der Datentabelle. Es wird der Inhalt vom 2 Datenfeld ausgegeben. $zeile = mysql_fetch_assoc($ergebnis); Ausgabe:echo $zeile[Feldname] Bsp: echo $zeile[Vorname] $zeile = mysql_fetch_object($ergebnis); Ausgabe: echo $zeile->Feldname; Bsp: echo $zeile->Vorname; mysql_num_rows() Aus der Ergebnistabelle wird ein Datensatz ermittelt und an die Variable $zeile übergeben Vorname ist der Spaltenname aus der Datenbanktabelle. Es wird der Vorname ausgegeben. Die Methode fetch_objekt() übergibt das nächste Objekt aus der Ergebnistabelle an $zeile. Gibt den Wert einer Eigenschaft des Objekts aus.Vorname ist der Spaltenname aus der Datenbanktabelle. Auf Groß-/Kleinschreibung muss geachtet werden. Liefert die Anzahl der Zeilen des Abfrageergebnisses Alternative Lösungen PHP - 4 von 5 - 24.02.2010 Befehlssammlung Informatik PHP und Formulare Weiterleitung mit meta-Tags Erläuterung <meta http-equiv="refresh" content = "5; url=http://www.example.com/" > Leitet nach 5 Sekunden an http://www.example.com/ weiter. http://jendryschik.de/wsdev/weiterleitung/ Formularobjekte (XHTML) Erläuterung <form action="bmi.php" method="post"> Formularobjekte </form> <input type="password" name="pwPasswort" size="5" maxlength="10" /> <input type="text" name="tfGewicht" size="5" maxlength="5" value = "" /> <input type="hidden" name="hiKdnr" value = "$mKdnr" size="5" maxlength="5" /> <input type="radio" name="rbAnrede" value = "1" checked = "checked" /> <input type="checkbox" name="cbWG1" value="1" /> <input type="submit" name="" value="Abschicken" /> <input type="reset" name="" value="Löschen" /> <textarea name="taNachricht" cols="50" rows="10" > Text </textarea> Definiert ein Formular Ruft ein Programm auf dem Server auf. Legt die Übertragungsmethode für die Formulardaten fest PHP Formularende Eingabefeld für ein Passwort Name des Eingabefeldes (pw für Passwort) Sichtbare Größe des Feldes Maximal einzugebende Zeichen Eingabefeld für Text Name des Eingabefeldes (tf für Textfeld) Text, mit dem das Feld vorbelegt wird verstecktes Feld Name des versteckten Feldes (hi für hidden) Variable, mit der das Feld vorbelegt werden kann Radiobutton Name (rb für Radiobutton) Übermittelter Wert, wenn ausgewählt/angeklickt Beim Laden bereits vorselektiert Checkbox Name (cb für Checkbox) Übermittelter Wert, wenn ausgewählt/angeklickt Submit-Button Aufschrift für den Submit-Button Reset-Button Aufschrift für den Reset-Button Mehrzeiliges Eingabefeld Name (ta für Textarea) Anzahl der angezeigten Spalten Anzahl der angezeigten Zeilen angezeigter Text - 5 von 5 - 24.02.2010