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

2 Zufallszahlen vergleichen

b1zarRe

Mitglied
Hey alle,

ich habe mir ein kleines Skript zusammengebastelt und bin nun auf folgendes Problem gestoßen:
Ich habe 2 Textfelder, welche mithilfe von PHP jeweils eine zufällige Zahl anzeigen. Nun soll
der Benutzer diese beide Addieren und in ein 3. Textfeld das Ergebnis schreiben und anschließend auf
Senden klicken.

Mein Problem im Skript ist nun aber, dass sobald der Benutzer auf Senden klickt 2 neue Zufallszahlen generiert
werden und mit der "alten" Ergebniseingabe des Benutzers verglichen werden.

Wie schaffe ich da Abhilfe?

Danke euch!
 
Werbung:
Moin,
wenn du nichts von deinem Code postest werden wir dir kaum Tipps geben können, was da falsch ist.
Also von der logik her willst du ungefähr sowas haben oder?
start.php
HTML:
<form action="test.php" method="post">
  <input type="text" name="eins" value="<?php echo rand(0,999)?>" disabled/>
  <input type="text" name="zwei" value="<?php echo rand(0,999)?>" disabled/><br/>
  <input type="text" name="beide"/>
  <input type="submit" name="sub" value="senden"/>
  </form>
test.php
PHP:
<?php
if($_POST['beide'] == ($_POST['eins'] + $_POST['zwei'])){
  echo 'passt';
}else{
  echo 'passt nicht';
}
?>
 
Hatte das bisher so... und die Fehlermeldung ist:
"Notice: Undefined index: zahl1 in C:\xampp2\htdocs\tests\test.php on line 23"

Code:
<!DOCTYPE html>

<html>
    <head>
    </head>

    <body>
        <form action="test.php" method="post">
          <input type="text" name="zahl1" value="<?php echo rand(1, 10); ?>" disabled><br>
          <input type="text" name="zahl2" value="<?php echo rand(1, 10); ?>" disabled><br>
          <input type="text" name="summe"><br>
          <input type="submit" name="absenden" value="Absenden">
        </form>   
    </body>
   
    <?php
        if (isset($_POST['absenden']))
        {
            if (empty($_POST['summe']))
            {
                echo "Bitte die Summe der beiden Zahlen eingeben.";
            }
            else if (($_POST['zahl1'] + $_POST['zahl2']) == $_POST['summe'])
            {
                echo "Ergebnis korrekt.";
            }
            else
            {
                echo "Ergebnis falsch.";
            }
        }
    ?>
</html>
 
Werbung:
Okay, da musst ich auch erstmal googeln :D
disabled felder werden nicht geposted.
Einfachste lösung wär vermutlich, das mit variablen und hidden feldern zu lösen, sieht bei mir jetzt so aus:
HTML:
<!DOCTYPE html>
<html>
  <head>
  </head>
  <?php
  $rnd1 = rand(1, 10);
  $rnd2 = rand(1, 10);
  ?>
  <body>
  <form action="test.php" method="post">
  <input type="text" value="<?php echo $rnd1; ?>" disabled><br>
  <input type="text" value="<?php echo $rnd2; ?>" disabled><br>
  <input type="hidden" name="zahl1" value="<?php echo $rnd1; ?>">
  <input type="hidden" name="zahl2" value="<?php echo $rnd2; ?>">
  <input type="text" name="summe"><br>
  <input type="submit" name="absenden" value="Absenden">
  </form>  
  </body>
   
  <?php
  print_r($_POST);
  if (isset($_POST['absenden']))
  {
  if (empty($_POST['summe']))
  {
  echo "Bitte die Summe der beiden Zahlen eingeben.";
  }
  else if (($_POST['zahl1'] + $_POST['zahl2']) == $_POST['summe'])
  {
  echo "Ergebnis korrekt.";
  }
  else
  {
  echo "Ergebnis falsch.";
  }
  }
  ?>
</html>
 
Gerne,
btw. wenn du die hidden Felder umgehen willst kannst du sonst auch statt disabled readonly verwenden, dann sind die Felder nur nicht grau hinterlegt
 
Werbung:
Zurück
Oben