• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit if-else

Status
Für weitere Antworten geschlossen.

haddi

Neues Mitglied
Schönen guten Abend!

Ich hab ein Problem, und zwar:
Wie ich vor ein paar Tagen schon in die Jobbörse geschrieben hab, ich will/hab einen Lateinvokabeltrainer.

Soweit bin ich jetzt: http://latein-vokabeltrainer.pytalhost.de/kapitel_02.php
Was heißt Dominus? Es heißt Herr und Hausherr!

Im oberen Feld ist der Code:
PHP:
($_POST["vokabel_001"] == "Herr")
und im unterem:
PHP:
($_POST["vokabel_002"] == "Hausherr")

Bloß wenn ein Besucher es vertauscht, dass im oberem feld Hausherr steht und im unterem Herr; dann ist es zwar richtig, aber doch falsch. was auch logisch ist. weil es heißt ($_POST["vokabel_001"] == "Herr") und nicht ($_POST["vokabel_002"] == "Hausherr").



Wie schaffe ich es, dass in einem Feld 2 "Lösungen" richtig sind??
Wenn ich versteht was ich meine..^^

Der Quelltext von kapitel_02.php:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>DURUM RES</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h3>Kapitel</h3>
<form action="kapitel_02.php" method="post">

<table width="100" border="0">
  <tr>
    <th scope="col">Was hei&szlig;t Dominus?</th>
    <th scope="col"><input type="text" name="vokabel_001"><br>
    <input type="text" name="vokabel_002">
    </th></form>
    <th scope="col"><?php
    if ($_POST["vokabel_001"] == "Herr") {
    ?>
    Richtig...!
    <?php
    }
    else {
    ?>
    Falsch...!
    <?php
    }
    ?>
    <?php
    if ($_POST["vokabel_002"] == "Hausherr") {
    ?>
    Richtig...!
    <?php
    }
    else {
    ?>
    Falsch...!
    <?php
    }
    ?>
   </th>
  </tr>
</table>
<input type="submit" value="Pr&uuml;fen">
</body>
</html>

DANKE!
 
Zuletzt bearbeitet von einem Moderator:
Versuchs mal damit

PHP:
if ($_POST["vokabel_001"] == "Herr" || $_POST["vokabel_001"] == "Hausherr") {
    ?>
    Richtig...!
    <?php
    }
    else {
    ?>
    Falsch...!
    <?php
    }
    ?>
    <?php
    if ($_POST["vokabel_002"] == "Herr" || $_POST["vokabel_002"] == "Hausherr") {
    ?>
    Richtig...!
    <?php
    }
    else {
    ?>
    Falsch...!
<?php
    if ($_POST["vokabel_001"] == $_POST["vokabel_002"]) {
    ?>
    Nicht schummeln
    <?php
 
Zuletzt bearbeitet von einem Moderator:
PHP:
if ($_POST["vokabel_001"] == "Herr" XOR $_POST["vokabel_001"] == "Hausherr")
{
  echo "Richtig!";
}
else
{
  echo "Falsch";
}

if (($_POST["vokabel_002"] == "Hausherr" XOR $_POST["vokabel_002"] == "Herr") 
AND $_POST["vokabel_002"] != $_POST["vokabel_001"])
{
  echo "Richtig";
}
else if ($_POST["vokabel_002"] == $_POST["vokabel_001"])
{
  echo "Falsch, das steht oben schon";
}
else
{
  echo "Falsch";
}

EDIT* UpsKarl war schneller
 
Noch etwas:

Kürzer, einfacher und auch für mehr Vokabeln ist eine Methode mittels in_array. Außerdem sollte man die Abfragen alle nicht Case-Sensitiv machen.
 
== und != ist caesinsensitiv
=== (und ab version 5 !==) ist casesensitiv!!

^^ Greetz Ch3ck3r
 
Hallo,

leider schreibe ich wieder^^.
Ich hab ein Problem und zwar, ich hab jetzt gesamt 3 Vokabeln im Formular, doch wenn ich dann auf prüfen gehe, zeigt es mir immer Falsch...! an. Warum ich habe es richtig eingegeben
Hier wieder das Formular:
http://www.kevinhartmann.de/kapitel_01.php

Code:
 Info:
basilica heißt: markthalle und/oder gerichtshalle
curia heißt: kurie
forum heißt: forum und/oder marktplatz

Die datei kapitel_01.php:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>DURUM RES</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h3>Kapitel 1</h3>
<form action="kapitel_01.php" method="post">

<table width="700" border="1">
  <tr>
  Bitte bei der &Uuml;bersetzung <big>alles <b>klein</b> schreiben</big>
  <tr>
  <tr>
    <th>Latein:</th>
    <th>&Uuml;bersetzung:</th>
    <th>Status</th>
  </tr>
  
  <tr>
    <th>basilica?</th>
    <th><input type="text" name="vokabel_001"><br>
        <input type="text" name="vokabel_002"></th>
      </form>
    <th>
      <?php
        if ($_POST["vokabel_001"] == "markthalle" || $_POST["vokabel_001"] == "gerichtshalle") {
        ?>
        Richtig...!
        <?php
        }
        else {
        ?>
        Falsch...!
        <?php
        }
        ?>
        <br>
        <?php
        if ($_POST["vokabel_002"] == "markthalle" || $_POST["vokabel_002"] == "gerichtshalle") {
        ?>
        Richtig...!
        <?php
        }
        else {
        ?>
        Falsch...!
        <?php
        }
        ?>
    </th>
  </tr>
<tr>
    <th>curia?</th>
    <th><input type="text" name="vokabel_003"></th>
        </form>
    <th>
      <?php
        if ($_POST["vokabel_003"] == "kurie") {
        ?>
        Richtig...!
        <?php
        }
        else {
        ?>
        Falsch...!
        <?php
        }
        ?>        
     </th>
  </tr>
 
  <tr>
    <th>forum?</th>
    <th><input type="text" name="vokabel_004"><br>
        <input type="text" name="vokabel_005"></th>
      </form>
    <th>
      <?php
        if ($_POST["vokabel_004"] == "forum" || $_POST["vokabel_004"] == "marktplatz") {
        ?>
        Richtig...!
        <?php
        }
        else {
        ?>
        Falsch...!
        <?php
        }
        ?>
        <br>
        <?php
        if ($_POST["vokabel_005"] == "forum" || $_POST["vokabel_005"] == "marktplatz") {
        ?>
        Richtig...!
        <?php
        }
        else {
        ?>
        Falsch...!
        <?php
        }
        ?>
    </th>
  </tr>
  
</table>
<input type="submit" value="Pr&uuml;fen">
</body>
</html>

Bitte um Hilfe.

MfG
Kevin
 
Ich greife noch einmal den Vorschlag von Artemis auf:

Mach das mit einem Array und in_array() und/oder array_key_exists(). Mit Ifs und Elseifs wird das unnötig aufgebläht, unübersichtlich und ausserdem machst du dir dann zuviel Arbeit.
 
Wie mache ich das mit Arrays?
Könntet ihr mir ein Beispiel schicken, wo dann zwei richtige sind?
WO füge ich das dann ein?

Bitte um Hilfe

MfG
Kevin
 
Ich hab so das leise Gefühl, du hast keine Ahnung von Php!
PHP:
<?php
        if ($_POST["vokabel_001"] == "markthalle" || $_POST["vokabel_001"] == "gerichtshalle") {
        ?>
        Richtig...!
        <?php
        }
        else {
        ?>
        Falsch...!
        <?php
        }
        ?>
Wie wärs mal mit echo() ?

Mod-Edit: Zweiten Post entfernt - Was bringt das, wenn du ellenlange Beiträge zitierst und das gleiche drunterschreibst wie in diesem Post? Außerdem gibt es die Editier-Funktion.
Zusätzlich möchte ich dich darauf hinweisen, dass ein übermäßiger Gebrauch von Satzzeichen nicht nötig, aber störend ist.
(Artemis)
 
Zuletzt bearbeitet von einem Moderator:
Tut mir leid, dass ich es nicht mit ECHO mache, in meinem Buch steht es auch ohne ECHO drinne (PHP UND MYSQL FÜR KIDS)!

--
Kevin
 
Das stimmt schon so, nur ist es uebersichtlicher, wenn du alles mit echo verarbeitest. So machst du dir nur muehe.
 
Also, meine kapitel_01.php sieht jetzt so aus:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>DURUM RES</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h3>Kapitel 1</h3>
<form action="kapitel_01.php" method="post">

<table width="700" border="1">
  <tr>
  Bitte bei der &Uuml;bersetzung <big>alles <b>klein</b> schreiben</big>
  <tr>
  <tr>
    <th>Latein:</th>
    <th>&Uuml;bersetzung:</th>
    <th>Status</th>
  </tr>
  
  <tr>
    <th>basilica?</th>
    <th><input type="text" name="vokabel_001"><br>
        <input type="text" name="vokabel_002"></th>
      </form>
    <th>
      <?php
        if ($_POST["vokabel_001"] == "markthalle" || $_POST["vokabel_001"] == "gerichtshalle") {
        echo "Richtig...!";
        }
        else {
        echo "Falsch...!";
        }
        ?>
        <br>
        <?php
        if ($_POST["vokabel_002"] == "markthalle" || $_POST["vokabel_002"] == "gerichtshalle") {
        echo "Richtig...!";
        }
        else {
        echo "Falsch...!";
        }
        ?>
    </th>
  </tr>
<tr>
    <th>curia?</th>
    <th><input type="text" name="vokabel_003"></th>
        </form>
    <th>
      <?php
        if ($_POST["vokabel_003"] == "kurie") {
        echo "Richtig...!";
        }
        else {
        echo "Falsch...!";
        }
        ?>     
     </th>
  </tr>
 
  <tr>
    <th>forum?</th>
    <th><input type="text" name="vokabel_004"><br>
        <input type="text" name="vokabel_005"></th>
      </form>
    <th>
      <?php
        if ($_POST["vokabel_004"] == "forum" || $_POST["vokabel_004"] == "marktplatz") {
        echo "Richtig...!";
        }
        else {
        echo "Falsch...!";
        }
        ?>
        <br>
        <?php
        if ($_POST["vokabel_005"] == "forum" || $_POST["vokabel_005"] == "marktplatz") {
        echo "Richtig...!";
        }
        else {
        echo "Falsch...!";
        }
        ?>
    </th>
  </tr>
  
</table>
<input type="submit" value="Pr&uuml;fen">
</body>
</html>

Aber es klappt immer noch nicht;
Ich hab jetzt gesamt 3 Vokabeln im Formular, doch wenn ich dann auf prüfen gehe, zeigt es mir immer Falsch...! an. Warum, ich habe es richtig eingegeben.?
Hier wieder das Formular:
http://www.kevinhartmann.de/kapitel_01.php

Code:
Info:
basilica heißt: markthalle und/oder gerichtshalle
curia heißt: kurie
forum heißt: forum und/oder marktplatz

Bitte um Hilfe.

--
Kevin
 
JumperII schrieb:
Also bei mir nicht .... dumm gefragt, tippst Du im Formular markthalle oder markthalle ein?

Gruß,
Jumper, the II.

wo ist da der unterschied? =)

aber wenn du kurie oder forum eintippst, dann geht es nicht, dann zeigt es falsch an!

--
Kevin
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben