Webhilfe.info/board

Normale Version: Eingabe vergleichen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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? Tongue Tongue Tongue
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
Zitat:@greg: Weißt du jetzt was ich mit halber Qualität meine? Zunge raus Zunge raus Zunge raus

Ach du bist doof 8)
Biggrin Ach war doch nur ein Scherz mein kleiner großer. *g*
Referenz-URLs