Halli Hallo,
ich würde gerne mit PHP eine Eingabe vergleichen, die man machen kann.
Ich möchte eine Aufgabe stellen und möchte, dass man das Ergebnis eintragen kann und wenn die Antwort richtig ist, bekommt man den Hinweise "Richtig".
Das Problem an der Sache (neben meiner Unkenntnis) ist, dass es mehrere Schreibmöglichkeiten gibt.
Eine Aufgabe wäre z.B. : 100 = 3 3 3 3 3
Als Antwort könnte man hier z.B. folgendes eingeben (3/3)+(3*33) oder (33*3)+(3/3)
Könnte mir da jemand helfen!?
Lieben Gruß
Tigra
also weiss nicht ob ich das richtig verstanden habe,aber habe mal eine eingabe mit test ob es richtig ist gemacht.
PHP-Code:
<?php
if(!$action) {
echo "
<form action=\"eingabe.php?action=test\" method=post>
Deine Eingabe: <input name=\"eingabe\" size=20 /><br />
<input type=submit class=button name=\"eingeben\" value=\"Eingabe bestätigen\" /><br />
</form>";
}
else {
if($eingabe=="100") { echo "Richtig"; } else { echo "Falsch"; }
}
?>
Demo
Mit nem switch geht das wesentlich einfacher über die Bühne und mit viel weniger Code...
PHP-Code:
<?php
if (isset($_POST['submit'])) {
switch($_POST['action']) {
// Hier kannst du beliebig viele (wahre) Bedingungen hinzufügen
case '(3/3)+(3*33)': print('Richtig <br />'); break;
case '(33*3)+(3/3)': print('Richtig <br />'); break;
// Wenn keine von den obigen Bedingungen zutrifft, tritt automatisch
// diese in Kraft
default: print('Falsch <br />');
}
}
echo '
<form action="" method="post">
<ul>
<li>
<label for="action">Eingabe:</label>
<input type="action" name="action" maxlength="50" />
</li>
<li>
<input class="button" type="submit" name="submit" value="Abschicken" />
</li>
</ul>
</form> ';
?>
Wenn du es so machst wie greg, dann ist es im Prinzip korrekt doch das Script von ihm schaut ob die Eingabe '(3/3)+(3*33)' (ohne') lautet, doch was ist wenn ein User ankommt und das so schreibt (wegen der Übersichtlichkeit) '(3 / 3) + (3 * 33)'. Die Rechnung ist dieselbe doch erkennt das Script dies nicht.
Man kann da Abhilfe mit folgender zusätzlicher Zeile schaffen.
PHP-Code:
if (isset($_POST['submit'])) {
$rechnung = str_replace(" ","",$_POST['action']);
switch($rechnung) {
// Hier kannst du beliebig viele (wahre) Bedingungen hinzufügen
case '(3/3)+(3*33)': print('Richtig <br />'); break;
case '(33*3)+(3/3)': print('Richtig <br />'); break;
// Wenn keine von den obigen Bedingungen zutrifft, tritt automatisch
// diese in Kraft
default: print('Falsch <br />');
}
}
echo '
<form action="" method="post">
<ul>
<li>
<label for="action">Eingabe:</label>
<input type="action" name="action" maxlength="50" />
</li>
<li>
<input class="button" type="submit" name="submit" value="Abschicken" />
</li>
</ul>
</form> ';
@greg: Weißt du jetzt was ich mit halber Qualität meine?

Hey Super!!!
Ich bin Euch in jedem Fall sehr dankbar!! :-)
Ich hatte so gar keine Vorstellung, wie ich das anstellen soll.
Ich werde mir alle drei Versionen speichern, damit ich was zum nach-
schauen habe ;-)
Vielen Dank!!
Tigra

Ach war doch nur ein Scherz mein kleiner großer. *g*