Denkfehler: HTML/PHP-Formular
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
addieren
befreien
code
dank
denkfehler
ergebnis
fehler
feld
formular
funktion
http
karpfen
klausur
merken
post
schnelle antwort
senden
url
zahl
-
Hallo Community...
Morgen schreiben wir eine Informatikklausur über HTML und PHP. Bis jetzt machen wir nur Grundlegendes und einfache Sachen. Zum Testen habe ich mal ein Formular zum Rechnen erstellt.
http://imagine-x.de/formular4.php
Irgendwo muss da allerdings ein Denkfehler drinstecken. Jedenfalls rechnet er nicht wirklich. Ich kann den Fehler einfach nicht finden:
<?php if (isset($_POST['senden'])){ if ($_POST['zahl1']!='' and $_POST['zahl2']!=''){ if ($_POST['gruppe1']==add){ $ergebnis = ($_POST['zahl1'] + $_POST['zahl2']); echo $ergebnis; } if ($_POST['gruppe1']==sub){ $ergebnis = ($_POST['zahl1'] - $_POST['zahl2']); echo $ergebnis; } if ($_POST['gruppe1']==mul){ $ergebnis = ($_POST['zahl1'] * $_POST['zahl2']); echo $ergebnis; } if ($_POST['gruppe1']==div){ $ergebnis = ($_POST['zahl1'] / $_POST['zahl2']); echo $ergebnis; } } else{ echo 'Bitte Zahl 1 unnd Zahl 2 ausfüllen!'; } } ?>
Hier noch der HTML-Quelltext:
<html> <head> <title>Formular 4</title> </head> <body> <form method="post"> <table border="1" width="50%" align="center"> <tr> <th colspan="2">Formular</th> </tr> <tr> <td>Zahl 1: </td> <td><input type="text" name="zahl1"></td> </tr> <tr> <td>Zahl 2:</td> <td><input type="text" name "zahl2"></td> </tr> <tr> <td colspan="2"> <input type="radio" name="gruppe1" value="add" checked> Addieren<br> <input type="radio" name="gruppe1" value="sub"> Subtrahieren<br> <input type="radio" name="gruppe1" value="mul"> Multiplizieren<br> <input type="radio" name="gruppe1" value="div"> Dividieren </td> </tr> <tr> <td colspan="2"><input type="submit" name="senden" value="Ergebnis"></td> </tr> <tr> <td>Ergebnis:</td> <td> </td> </tr> </table> </form> </body> </html>
Könnt ihr den Fehler finden?
Vielen Dank! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Versuchs mal so:
<?php if (isset($_POST['senden'])){ if (!empty($_POST['zahl1']) and !empty($_POST['zahl2'])){ if ($_POST['gruppe1']==add){ $ergebnis = ($_POST['zahl1'] + $_POST['zahl2']); echo $ergebnis; } if ($_POST['gruppe1']==sub){ $ergebnis = ($_POST['zahl1'] - $_POST['zahl2']); echo $ergebnis; } if ($_POST['gruppe1']==mul){ $ergebnis = ($_POST['zahl1'] * $_POST['zahl2']); echo $ergebnis; } if ($_POST['gruppe1']==div){ $ergebnis = ($_POST['zahl1'] / $_POST['zahl2']); echo $ergebnis; } } else{ echo 'Bitte Zahl 1 unnd Zahl 2 ausfüllen!'; } } ?>
LG cookies -
Funktioniert leider noch nicht :(
Danke für die schnelle Antwort...
Siehe hier:
http://imagine-x.de/formular5.php -
matbot schrieb:
Funktioniert leider noch nicht :(
Danke für die schnelle Antwort...
Siehe hier:
http://imagine-x.de/formular5.php
Du hast einen Fehler in deinem HTML-Code. Ersetze einfach
name "zahl2"
durch
name="zahl2"
LG cookies -
Meinst du die bei den Rechenfunktionen? Die mache ich eigentlich immer nur der Übersicht halber =// Spricht was dagegen?
-
Ich würde die beiden POST-Variablen mit einer vorgesetzten trim()-Funktion überprüfen, sonst kann man einfach 2 Leerzeichen einsetzen und den Code ausführen. Ist vielleicht nicht zwingend notwendig aber ein bisschen schöner.
<?php if (isset($_POST['senden'])){ if (trim($_POST['zahl1']!='') and trim($_POST['zahl2']!='')){ if ($_POST['gruppe1']==add){ $ergebnis = ($_POST['zahl1'] + $_POST['zahl2']); echo $ergebnis; } if ($_POST['gruppe1']==sub){ $ergebnis = ($_POST['zahl1'] - $_POST['zahl2']); echo $ergebnis; } if ($_POST['gruppe1']==mul){ $ergebnis = ($_POST['zahl1'] * $_POST['zahl2']); echo $ergebnis; } if ($_POST['gruppe1']==div){ $ergebnis = ($_POST['zahl1'] / $_POST['zahl2']); echo $ergebnis; } } else{ echo 'Bitte Zahl 1 unnd Zahl 2 ausfüllen!'; } } ?>
So würde dein Formular auch den Else-Pfad ausgeben, wenn der Benutzer in Feld 1 ein Leerzeichen oder/und in Feld 2 ein Leerzeichen eingegeben hat.
Beitrag zuletzt geändert: 10.11.2009 19:23:23 von karpfen -
Guter Tipp! Gibt vielleicht ein paar Extrapunkte in der Klausur. Werde ich mir auch merken...
Danke für eure Hilfe!
Damit closed, weil Problem gelöst (edit by karpfen)
Beitrag zuletzt geändert: 10.11.2009 19:26:31 von karpfen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage