CreativPur
Erfahrenes Mitglied
Hallo,
ich versuche gerade eine Sicherheitsabfrage für mein Kontaktformular zu erstellen.
Bei diesem Tool soll eine kleine Rechenaufgabe gelöst werden, die aus zwei Zufallszahlen zusammen addiert werden sollen.
Die Aufgabe wird folgend dargestellt:
Nun soll geprüft werden, ob das richtige Ergebnis eingegeben wurde...
Das Eingabefeld für das Ergebnis und die Hiddenfelder für $zahl1 und $zahl2 sehen folgendermaßen aus..
Erst wenn die richtige Summe eingetragen wurde, soll das Formular sendebereit sein
Das Problem ist, ich weiß nicht, wie ich das umsetzen kann.
ich versuche gerade eine Sicherheitsabfrage für mein Kontaktformular zu erstellen.
Bei diesem Tool soll eine kleine Rechenaufgabe gelöst werden, die aus zwei Zufallszahlen zusammen addiert werden sollen.
PHP:
<?php
$showFormular = true;
$zahl1 = mt_rand(1,20);
$zahl2 = mt_rand(1,20);
$numbers = array($zahl1, $zahl2);
$operators = array('+');
$mathString = '';
foreach ($numbers as $id => $number) {
if ($id < count($numbers)-1) {
$mathString .= $number . $operators[$id];
} else {
$mathString .= $number;
}
}
if($showFormular) {
?>
Die Aufgabe wird folgend dargestellt:
PHP:
<label> <span style="color:red;">Sicherheitsfrage:</span> Was ergibt <?php echo $zahl1. ' + ' .$zahl2 ?></label>
Nun soll geprüft werden, ob das richtige Ergebnis eingegeben wurde...
PHP:
<?php
echo '<br />';
$ergebnis = $_POST['ergebnis'];
$summe = $_POST['zahl1'] + $_POST['zahl2'];
if($ergebnis != $summe) {
echo '<strong style="color:red;">Das Ergebnis ist falsch</strong>';
$error = true;
}
else {
echo '<strong style="color:green;"></strong>';
$error = true;
}
?>
Das Eingabefeld für das Ergebnis und die Hiddenfelder für $zahl1 und $zahl2 sehen folgendermaßen aus..
PHP:
<div class="sicherheit" style="font-size:12px">
<div class="mb-3">
<input class="form-control form-control-sm" type="text" placeholder="Ergebnis eingeben" style="height: 10px; margin-top:5px;" name="ergebnis" required>
</div>
<div class="mb-3">
<input type="text" style="display: none" id="exampleFormControlInput1" name="zahl1" value="<?php echo $zahl1 ?>">
</div>
<div class="mb-3">
<input type="text" style="display: none" id="exampleFormControlInput1" name="zahl2" value="<?php echo $zahl2 ?>">
</div>
</div>
Erst wenn die richtige Summe eingetragen wurde, soll das Formular sendebereit sein
Das Problem ist, ich weiß nicht, wie ich das umsetzen kann.