Formulare in HTML Eingabe Interaktive Webseiten machen nur Sinn, wenn es für den Nutzer möglich ist Eingaben zu machen. Dafür stehen in HTML Formulare zur Verfügung. Hier ein Beispiel für einen Login-Dialog: <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post"> Im öffnenden <form>-Tag wird bestimmt was mit den Daten geschehen soll. Und zwar Methode Die Methode bestimmt auf welche Weise die Daten verschickt werden sollen.
Übernahme der Variablen Seit der Version 4.3.x von PHP wird aus Sicherheitsgründen empfohlen die PHP-Variable $register_globals (in der php.ini) auf off zu setzen. Das erfordert, dass im Programm die übergebenen Variablen explizit eingelesen werden müssen $kennung = $_GET['kennung']; bzw. $kennung = $_POST['kennung']; Die vom Nutzer eingegebenen Daten stehen dann in den entsprechenden Variablen. Aber wohin sollen die Daten nun
verschickt werden?
a) Fremddatei b) Eigendatei Die Variable $PHP_SELF zeigt immer auf die Datei in der sie steht. Durch echo wird sie in den HTML-Code geschrieben. So schickt das Formular die Daten an das eigene Dokument. Probleme kann es bei dieser Konstruktion geben, wenn der Nutzer die reload-Funktion seines Browsers betätigt. Die selben Daten werden dann erneut bearbeitet. Beispiel1 <html lang="de"> <form action="<? echo $_SERVER[PHP_SELF]; ?>" method="post"> <? Vergleiche Jetzt soll aber etwas mit den Daten passieren. Zum Beispiel soll bei einer Passwortabfrage die eingegebenen Daten mit dem richtigen Passwort verglichen werden. Darüf benötigen wir Kontrollstukturen. In diesem Fall eine bedingte Verzweigung, die das Programm verzweigt, also je nach Situation (Passwort richtig oder falsch) anders reagieren lässt.. Ist das Passwort richtig begrüße den Nutzer, ist es falsch gib eine Fehlermeldung aus. Um überhaupt verzweigen zu können müssen wir erst einmal vergleichen können. Folgendes $passwort = "geheim"; war ja eine Wertzuweisung und kein Vergleich oder gar Gleichung. Ein Vergleich in PHP wäre: $passwort == "geheim" Folgede Vergleichsoperatoren kennt PHP:
Das Ergebnis von Vergleichen ist immer ein boolscher Wert, kann also nur true oder false sein. Die Vergleiche können auch aus mehreren Komponenten zusammengesetzt werden. Auch dann ist das Ergebnis jedoch immer ein boolscher Wert. $nutzername == "meyer" && $passwort == "geheim" Das Beispiel würde nur dann true werden, wenn Nutzername und (&&) Passwort übereinstimmen. Wenn auch nur eines nicht übereinstimmt, ergibt der Vergleich false. Die Vergleiche können also mit sogenannten logischen Opperatoren zusammengesetzt werden. Folgede logische Opperatoren kennt PHP (nach ihrer Rangfolge):
|| ergibt bereits true wenn einer der beiden Verleiche stimmt. Hingegen verlangt xor, dass nur eines der beiden zustimmen darf. Beispiel. Was ist das Ergebnis? (Auflösung am Ende der Seite) Hier ist die Rangfolge der Operatoren zu beachten! Bedingte Verzweigungen IF Mit der if Bedingung, kann man die Ausführung eines Programmcodes von dem Ergebnis eines Vergleiches abhängig machen. Die Vergleiche stehen hinter dem Schlüsselwort if in runden Klamern. Gefolgt wird dies durch einen Anweisungsblock aus geschweiften Klammern. Dieser Block wird dann ausgeführt, wenn wenn der Vergleich insgesamt true ergibt. if
($wert < 0) { Diese Anweisung kann erweitert werden um einen Anweisungsteil, der ausgeführt wird, wenn der Vergleich false ergibt. else {…} oder für weitere Fälle: else if (vergleich){…} IF-Bedingungen können auch ineinander geschachtelt werden. SWITCH Die switch Anweisung kann eine ganze Reihe von if- und else if-Anweisungen recht komfortabel zusammenfassen. Switch funktioniert dabei wie ein Verteiler, der in Abhängigkeit einer Variablen einen von verschiedenen Anweisungsblöcken ausführt. switch (variable) { default: Seiten zusammensetzen INCLUDE Mit Hilfe des include Befehls können Codebausteine in eine Seite eingesetzt werden. Der URL benennt den Verzeichnispfad der Ressource. Dies kann HTML oder PHP-Code sein. Bei include wird die Seite erst zusammengesetzt und dann vollständig interpretiert. Daher funktioniert include auch innehalb von Schleifen. include(„URL“); REQUIRE require ist eine Alternative zu include. Der require Block wird jedoch im Unterschied dazu erst interpretiert und dann eingesetzt. require kann daher in Schleifen nicht verwendet werden. require(„URL“); Funktionen Funktionen sind Bündelungen von Anweisungen, die unter einem Namen definiert und dann mehrfach aufgerufen werden können. Sie beginnen mit dem Schlüsselwort function gefolgt von dem frei vergebenen Namen (mit den üblichen Einschränkungen). Danach folgt ein Block mit Anweisungen in geschweiften Klammern, die abgearbeitet werden sollen, wenn die Funktion mit ihrem Namen an irgend einer Stelle des Programms aufgerufen wird.
Beim Aufruf einer Funktion können ihr Werte in den runden Klammern übergeben werden.
Funktionen in PHP können ein Ergebnis (nur eines) an die aufrufende Stelle zurückliefern. Dazu muß am Ende einer Funktion das Schlüsselwort return einen Wert (üblicher Weise mit einer Variablen) zurückliefern. return bewirkt, das die Funktion an dieser Stelle abbricht und zurückkehrt.
Call by Value Bei der call-by-value Methode verändert die Funktion die Variablen des Hauptprogramms nicht. Das x-Inkrement ist nur innerhalb der Funktion gültig.
Hier werden nicht die Werte (value), sondern die Speicheradressen der Variablen übergeben. Änderungen an den Variablen in der Funktion sind so auch im Hauptprogramm wirksam.
Auflösung: |