[PHP] Denkanstoss für Anfänger

freddino

Well-known member
16 August 2008
527
23
Hallo Leute

Eins vorweg,hab erst vor 2 Tagen mit php begonnen.
Jetzt habe ich eine Übung von unserem Trainer bekommen und soll eine Art Taschenrechner schreiben,er meinte das es per isset zu lösen ist,aber irgendwie komm ich nicht drauf oder vergesse was :(

Der Taschenrechner ist ein Formular mit 2 textfelder für die Zahlen
und 4 Submit Buttons,die jeweils das Ergebniss ausgeben sollen wenn man darauf klickt.

Mein ansatz ist

Code:
$zahl1 = $_POST["zahl1"] ;
$zahl2 = $_POST["zahl2"] ;
$minus = $_POST["-"] ;

if (isset ($minus))
	  {
	    $ergebnis = $zahl1 - $zahl2 ;
		echo $ergebnis."Ist das Ergebnis" ;
	   }

Leider wird nichts ausgegeben :ugly:
Bitte um eine kleine Hilfestellung :)

mfg
freddino
 
Du fragst also ab, ob die per POST übergebene Variable "-" etwas enthält. Damit diese etwas enthält muss der Button für Subtraktion auf deinem Formular den Namen "-" haben. Hat er das? Oder hat er nur den Wert "-"?

Edit: Richtig, du könntest ihm auch einen richtigen Namen spendieren...
 
Er hat nur den Wert "-" :ugly:
Steh gerade am schlauch.

Der Name ändert doch nix.

mfg
freddino
 
PHP:
print_r($_POST);
davon poste mal die Ausgabe.

Zum "-": Man sollte keine Sonderzeichen benutzen. Ich hab die Spezifikation nicht im Kopf, aber ich denke nicht, dass das erlaubt ist.

Besser wäre ein
PHP:
if(isset($_POST['operation']) && $_POST['operation']=='minus')
 
PHP:
<form action="" method="post">
 <input type="text" name="zahl1"/>
 <select name="operator">
  <option value="-">-</option>
  <option value="+">+</option>
  <option value="*">*</option>
  <option value="/">/</option>
 </select>
 <input type="text" name="zahl2"/>
 <input type="submit" value="berechnen"/>
</form>
<?php

if (isset ($_POST['zahl1'],$_POST['zahl2'],$_POST['operator']))
{
    $zahl1 = $_POST["zahl1"] ;
    $zahl2 = $_POST["zahl2"] ;
    $operator = $_POST["operator"] ;
    switch($operator)
    {
        case '-':
            $ergebnis = $zahl1 - $zahl2;
            break;
        case '+':
            $ergebnis = $zahl1 + $zahl2;
            break;
        case '*':
            $ergebnis = $zahl1 * $zahl2;
            break;
        case '/':
            $ergebnis = $zahl1 / $zahl2;
            break;
    }        
        echo $ergebnis." Ist das Ergebnis" ;
}
?>
 
Zuletzt bearbeitet:
@burnred:
Nicht getestet. Ätsch :mrgreen:
$minus ist nämlich nicht gesetzt.


Die Sonderzeichen im Wert sind auch gefährlich. V.a. da das Leerzeichen als Plus übergeben wird. Benutzt halt "plus", "minus", "mal", "geteilt" (wers unbedingt deutsch braucht) als Werte; da geht sicher nix schief.
 
Zuletzt bearbeitet:
print_r spuckt nur folgendes aus.

Code:
array ([zahl1] => eingegebener wert [zahl2] => eingegebener wert)
 
Daran siehst du, dass der komische Parameter nicht übegeben wurde.
Wie man das liest, sollte klar sein, oder?
 
Wenn du mit Parameter den Wert meinst,den hab ich schon geändert.
Mit dem gleichen Ergebnis.
 
Der Name für das Feld/den Button mit Minus muss von - auf etwas alphanumerisches geändert werden. Der Wert kann sicherlich auf Minus bleiben.
 
Ah Mist hatte ganze Zeit einen Denkfehler.
Dachte man kann bei submit kein name festlegen :ugly:

Danke