kostenloser Webspace werbefrei: lima-city


Denkfehler: HTML/PHP-Formular

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    matbot

    Kostenloser Webspace von matbot

    matbot hat kostenlosen Webspace.

    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&uuml;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!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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&uuml;llen!';
    		}
    	} 
    	?>


    LG cookies
  4. Autor dieses Themas

    matbot

    Kostenloser Webspace von matbot

    matbot hat kostenlosen Webspace.

    Funktioniert leider noch nicht :(
    Danke für die schnelle Antwort...

    Siehe hier:
    http://imagine-x.de/formular5.php
  5. 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
  6. Autor dieses Themas

    matbot

    Kostenloser Webspace von matbot

    matbot hat kostenlosen Webspace.

    VERDAMMT xDDDD

    Danke!!
    Jetzt funktioniert alles reibungslos... :) Sogar mit der ursprünglichen if-Abfrage... Das "empty" sieht natürlich schöner aus. Muss ich mir merken.
  7. matbot schrieb:
    VERDAMMT xDDDD

    Danke!!
    Jetzt funktioniert alles reibungslos... :) Sogar mit der ursprünglichen if-Abfrage... Das "empty" sieht natürlich schöner aus. Muss ich mir merken.


    Du solltest aber mit der Funktion trim() die POST-Variablen von nutzlosen Leerzeichen befreien.
  8. Autor dieses Themas

    matbot

    Kostenloser Webspace von matbot

    matbot hat kostenlosen Webspace.

    Meinst du die bei den Rechenfunktionen? Die mache ich eigentlich immer nur der Übersicht halber =// Spricht was dagegen?
  9. 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&uuml;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
  10. Autor dieses Themas

    matbot

    Kostenloser Webspace von matbot

    matbot hat kostenlosen Webspace.

    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
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!