E-Book Startseite Karteikarten-Programm
0

wenn ..., dann ...

Den Befehl if gibt es nicht nur in JavaScript, sondern in so ziemlich jeder Programmiersprache - Natürlich auch in PHP. Wir haben den Befehl hier im PHP-Kurs ausführlicher beschrieben, da es in PHP noch einige Funktionen mehr gibt. Alle unsere Beispielcodes zeigen ein HTML-Formular mit 2 Feldern (Benutzername und Passwort). Wir beginnen mit der einfachsten if-Variante: "wenn ..., dann ... ". In unserem 1. Beispiel speichern wir als erstes nur den Benutzername in einer Variabel. Der eingegebene Wert wird mit dem richtigen Wert (in diesem Fall "Besucher") verglichen. Wenn der eingegebene Wert korrekt war erscheint die Meldung "Willkommen Besucher". Wenn die Eingabe nicht korrekt war wird eine leere Seite angezeigt. In unserem Beispiel wird also überprüft ob die Bedingung erfüllt ist. Ist dies der Fall wird eine Textausgabe erstellt. Um den Aufbau einer if-Bedingung zu verstehen, schauen Sie sich einfach den Aufbau des Quellcodes an. Wichtig: In der Praxis sollte immer überprüft werden, ob die GET- oder POST- Variable gesetzt wurde. Dafür wird die Funktion isset genutzt. Ein Beispiel finden Sie im Kapitel "Weiterführendes" unter "Kontaktformular: HTML und PHP" (im PHP-Beispiel).

<form action="formular-if1.php" method="post">
  Benutzername: <input type="text" name="benutzer" />
  <br />
  Passwort: <input type="password" name="passwort" />
  <br />
  <input type="reset" name="reset" value="L&ouml;schen" />
  <input type="submit" name="submit" value="Absenden" />
</form>
$username = $_POST["benutzer"];
 
if ($username == "Besucher") {
    echo "Willkommen Besucher";
}
Anzeigebeispiel
Anzeigebeispiel



wenn ... nicht, dann ...

Weiter geht es mit einer Ausgabe eines Textes wenn die Eingabe nicht korrekt war. Wer nun denkt, dass man zwei if-Abfragen hintereinander macht, bei der als Vergleich einmal == und einmal != verwendet wird, der wird leider enttäuscht sein, denn es geht viel einfacher. In PHP gibt es einen anderen Befehl: else  Hinter / Unter der schließenden Klammer der if-Abfrage wird einfach das Wort else eingefügt. Danach werden die geschweiften Klammern wieder geöffnet und es kann beispielweise wieder ein Text ausgeben werden. In diesem Fall erscheint folgende Meldung: "Zugriff verweigert!"

<form action="formular-if2.php" method="post">
  Benutzername: <input type="text" name="benutzer" />
  <br />
  Passwort: <input type="password" name="passwort" />
  <br />
  <input type="reset" name="reset" value="L&ouml;schen" />
  <input type="submit" name="submit" value="Absenden" />
</form>
$username = $_POST["benutzer"];
 
if ($username == "Besucher") {
    echo "Willkommen Besucher";
}
else {
    echo "Zugriff verweigert!";
}
Anzeigebeispiel
Anzeigebeispiel



verschachteln von if-Befehlen

Man kann if-Befehle auch verschachteln. In unserem Beispiel werden nun zum ersten Mal beide Eingabefelder interessant. Als erstes wird der Benutzername überprüft. Wenn die Eingabe richtig war erscheint die Textausgabe "Benutzername erkannt". Nun geht die Überprüfung weiter: wurde das Passwort (in diesem Fall test) richtig eingegeben, dann erhält man die Meldung "Passwort erkannt". Bei einer falschen Eingabe bekommt man die Meldung "Passwort nicht erkannt ". Wenn schon die Eingabe des Benutzernamens scheitert, dann erscheint sofort die Meldung "Benutzername nicht erkannt". Das Passwort wird gleich gar nicht kontrolliert. Diese Art der Kontrolle kennt man von Login-Skripts.

<form action="formular-if3.php" method="post">
  Benutzername: <input type="text" name="benutzer" />
  <br />
  Passwort: <input type="password" name="passwort" />
  <br />
  <input type="reset" name="reset" value="L&ouml;schen" />
  <input type="submit" name="submit" value="Absenden" />
</form>
$username = $_POST["benutzer"];
$passwort = $_POST["passwort"];
 
if ($username == "Besucher") {
    echo "Benutzername erkannt";
    if ($passwort == "test") {
        echo "<br />Passwort erkannt";
    }
    else {
        echo "<br />Passwort nicht erkannt";
    }
}
else {
    echo "Benutzername nicht erkannt";
}
Anzeigebeispiel
Anzeigebeispiel



wenn ... und ..., dann ...

Es gibt auch die Möglichkeit, dass beide Felder auf einmal überprüft werden. Der Nachteil ist, dass die Felder nicht einzeln überprüft werden können und so keine spezifischen Fehlermeldungen erscheinen können. Ist dies nicht notwendig, so ist dies Funktion einfacher und übersichtlicher. Mit dem Befehl AND werden die beide Bedingungen auf einmal überprüft. Statt dem Wort AND könnte man auch && verwenden. Wenn beide Eingaben richtig waren erscheint die Meldung "Benutzername und Passwort wurden korrekt eingegeben!". Wenn eine oder mehrere Angaben falsch waren erscheint die Meldung "Eine oder mehrere Angaben waren nicht korrekt!".

<form action="formular-if4.php" method="post">
  Benutzername: <input type="text" name="benutzer" />
  <br />
  Passwort: <input type="password" name="passwort" />
  <br />
  <input type="reset" name="reset" value="L&ouml;schen" />
  <input type="submit" name="submit" value="Absenden" />
</form>
$username = $_POST["benutzer"];
$passwort = $_POST["passwort"];
 
if ($username == "Besucher" AND $passwort == "test") {
    echo "Benutzername und Passwort wurden korrekt eingegeben!";
}
else {
    echo "Eine oder mehrere Angaben waren nicht korrekt!";
}
Anzeigebeispiel
Anzeigebeispiel



wenn ... oder ..., dann ...

Nachdem man bei if-Abfragen 2 Dinge auf einmal auf Richtigkeit prüfen kann, kann man auch nur eines prüfen, d. h. es muss mindestens eine Angabe richtig sein. Es reicht aus wenn eine Eingabe korrekt ist. Für diesen Vergleich, gibt es die Möglichkeit das Wort OR zu verwenden oder zwei Senkrechtstriche (||). Wenn eine oder beide Eingabe(n) korrekt war(en) kommt die Meldung "Benutzername und / oder Passwort wurde korrekt eingegeben!". Wenn beide Eingaben falsch waren, kommt die Meldung "Beide Angaben waren nicht korrekt!". "AND" und "OR" können natürlich nicht zur für zwei Bedingungen genutzt werden, es können z. B. auch 10 Bedingungen auf Richtigkeit geprüft werden.

<form action="formular-if5.php" method="post">
  Benutzername: <input type="text" name="benutzer" />
  <br />
  Passwort: <input type="password" name="passwort" />
  <br />
  <input type="reset" name="reset" value="L&ouml;schen" />
  <input type="submit" name="submit" value="Absenden" />
</form>
$username = $_POST["benutzer"];
$passwort = $_POST["passwort"];
 
if ($username == "Besucher" OR $passwort == "test") {
    echo "Benutzername oder / und Passwort wurde korrekt eingegeben!";
}
else {
    echo "Beide Angaben waren nicht korrekt!";
}
Anzeigebeispiel
Anzeigebeispiel



"und" und "oder" kombinieren

Die Befehle AND und OR können auch kombiniert werden. Das eignet sich zum Beispiel bei Anmeldefelder: Es gibt mehrere User (dafür OR) und es müssen beide Felder (dafür AND) korrekt ausgefüllt werden. So haben wir es auch in unserem Beispiel gemacht. Zusätzlich zu dem bereits bekannten User gibt es nun den User "Admin" mit dem Passwort "123". Für große Anmeldeskripte (z. B. mit flexibler Useranzahl) werden hierfür Schleifen verwendet.

<form action="formular-if6.php" method="post">
  Benutzername: <input type="text" name="benutzer" />
  <br />
  Passwort: <input type="password" name="passwort" />
  <br />
  <input type="reset" name="reset" value="L&ouml;schen" />
  <input type="submit" name="submit" value="Absenden" />
</form>
$username = $_POST["benutzer"];
$passwort = $_POST["passwort"];
 
if (($username == "Besucher" AND $passwort == "test") OR ($username == "Admin" AND $passwort == "123")) {
    echo "Sie haben sich erfolgreich angemeldet!";
}
else {
    echo "Sie konnten nicht angemeldet werden!";
}
Anzeigebeispiel
Anzeigebeispiel



wenn nur eine Bedingung erfüllt ist, dann ...

Zu den bereits genannten Methoden, kann man auch überprüfen, dass nur eine Eingabe richtig sein darf: nicht mehr und auch nicht weniger. Diese Methode eignet sich z. B. bei nur einem Eingabefeld mit verschiedenen Eingabemöglichkeiten. Der Befehl für diese Methode ist XOR. Wir verwenden wieder das gleiche Beispiel wie bei "wenn ... und ..., dann ..." Jedoch werden wieder andere Meldungen erscheinen: "Sie wurden angemeldet, da nur eine Eingabe richtig war!" oder "Sie wurden nicht angemeldet, da keine oder mehrere Eingaben richtig waren!". Dies sieht im fertigen Beispiel folgendermaßen aus:

<form action="formular-if7.php" method="post">
  Benutzername: <input type="text" name="benutzer" />
  <br />
  Passwort: <input type="password" name="passwort" />
  <br />
  <input type="reset" name="reset" value="L&ouml;schen" />
  <input type="submit" name="submit" value="Absenden" />
</form>
$username = $_POST["benutzer"];
$passwort = $_POST["passwort"];
 
if ($username == "Besucher" XOR $passwort == "test") {
    echo "Sie wurden angemeldet, da nur eine Eingabe richtig war!";
}
else {
    echo "Sie wurden nicht angemeldet, da keine oder mehrere Eingaben richtig waren!";
}
Anzeigebeispiel
Anzeigebeispiel



Design:
 


Logo
Benjamin Jung
Krummstr. 9/3
73054 Eislingen

E-Mail: info@homepage-webhilfe.de
Webseite: www.homepage-webhilfe.de