PHP Nicht funktionierender Tascenrechner

Juggle-Junkie

Lieutenant
Registriert
Feb. 2009
Beiträge
741
Nabend zusammen,

hab inner Berufsschule die Aufgabe bekommen nen Taschenrechner zu programmieren.

Jetzt hab ich soweit eig alles. ne html Seite die dann mit POST zu der PHP datei wandert.

Nur das was ich eingezeigt bekomme ist "+ = 0"

Bild von den Skripts

Danke schonmal im vorraus.

Greetz
Julian

Edit: Rechtschreibfehler im Threadnamen -.- mist..
 
Deine input-Felder zahl1, zahl2, liegen außerhalb des Formulars.

P.S. es wäre besser, den Code hier reinzukopieren ([PHP]<?php #dein Code ?>[/PHP]), dann kann den jeder ggf. schnell mal testen und muss nicht alles abtippen.
 
Zuletzt bearbeitet:
Das Formular ist auch nicht abgeschlossen.
 
Serverseitig fehlen auch ein paar Abfragen, ob da wirklich zwei Zahlen übergeben, ob da überhaupt was übergeben wird.. Einfacher wäre:

if(is_numeric($zahl1) && is_numeric($zahl2) && in_array($operations, array('+', '-', '*', '/')))
{
echo "$zahl1 $operation $zahl2 =" . eval($zahl1 . $operation . $zahl2);
} else
{
echo 'keine Zahl, etc..';
}
 
@Stefan-: Das ist für mich noch viel zu kompliziert aber danke trotzdem :)

@marcol1979&Mr.Snoot:

Formular beendet und die Zeile mit den beiden Zahlen-inputs unter den <form> vefehl gezogen.


HTML:
<?php <html>
<head>
</head>
<body bgcolor="black" text="white">

<form action="tr.php" method="POST">
1. Zahl <input type="number" name="zahl1"> 2. Zahl   <input type="number" name="zahl2">
<p>Operator<br>
<input type="radio" name="operation" value="+" checked>PLUS
<input type="radio" name="operation" value="-">MINUS
<input type="radio" name="operation" value="*">MAL
<input type="radio" name="operation" value="/">GETEILT
<p>

<input type="submit" name="rechne" value="Ausrechnen"><br>

</form>

</body>
</html> ?>
PHP:
<?php <html>
<body>




<?php

$zahl1=$_POST["zahl1"];
$zahl2=$_POST["zahl2"];
$operation=$_POST["operation"];

switch($_POST["operation"])
{
    case "+":
        $ergebnis = $zahl1 + $zahl2;
        break;

    case "-":
        $ergebnis = $zahl1 - $zahl2;
        break;

    case "*":
        $ergebnis = $zahl1 * $zahl2;
        break;

    case "/":
        $ergebnis = $zahl1 / $zahl2;
        break;
}

        $ausgabe ="$zahl1 $operation $zahl2 = $ergebnis";

        echo "$ausgabe"
?>

</body>
</html> ?>

funktioniert leider immernoch nicht :(
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    52,7 KB · Aufrufe: 140
Moin,

schmeiß mal aus der tr.php das ganze erste <?php vor dem <html> und das allerletzte ?> am Ende raus. Dann funktioniert es vielleicht schon besser ;)
 
ja lol ^^ jop, als ich die <html> sachen ausm tr.php genommen hab, funktionierte es ! Fettes Danke Batti !
 
ja wenn du HTML-Tags in den <?php ?>-Klammern haben willst musst du sie mit dem "echo" Befehl ausgeben ;)
 
ja ist mir auch dann eingefallen ^^ deswegen konnte der damit ja auch nichts angefangen und hat rumgespackt..

aber ich hab grad die 2. Aufgabe angefangen, die eig genauso verläuft. Ein Währungsrechner mit den Radio-Buttons und 4 Währungen in die der Euro umgewandelt werden soll. Es hapert an der Übertragung der Daten auf die 2. Datei, nur ich weiß nicht wo der Fehler ist.. Bevor ich schreibe guck ich lieber selber nochmal ;-)
 
Lass dir im zweiten Script mit echo einfach deine $_POSTs ausgeben, dann siehst du, ob die Formulardaten hier ankommen und das zweite Script bei der Berechnung spinnt, oder ob es schon am Formular selbst hakt.
 
Nep, geht nicht

HTML:
<html>
<body bgcolor="black" text="white">

<form action=".php" method="POST">

<input type="number" name="euros"> €                                     <br><p>

in                                                                         <br><p>

<input type="radio" name="währung" value="D" checked> US Dollar                 <br>
<input type="radio" name="währung" value="Y"> Yen                        <br>
<input type="radio" name="währung" value="P"> Pfund                        <br>
<input type="radio" name="währung" value="HUF"> Ungarische Forint        <br><p>

<input type="submit" name="umrechnen" value="umrechnen..">


</form>

</body>
</html>
PHP:
<?php

$euros=$_POST["euros"];
$währung=$_POST["währung"];
$umrechnen=$_POST["umrechnen"];

switch($_POST["umrechnen"])

{
    case "+":
        $ergebnis = $euros * 136;
        break;

    case "-":
        $ergebnis = $euros * 124;
        break;

    case "*":
        $ergebnis = $euros * 088;
        break;

    case "/":
        $ergebnis = $euros * 247;
        break;
}

        $ausgabe ="$euros * $währung = $ergebnis";
    
        echo "$ausgabe €";

?>
Beide Dateien im gleichen Ordner. wr.html und wrx.php :-/

 
oben steht nur action=".php" im form tag

dann würde ich die "ä"s aus den variablen namen rausnehmen

und die cases sind noch"+" "-" etc
 
oh okay thx ^^ klappt aber leider noch nicht :-/

sagt das ein unerwartetes komma in zeile 10 gefunden hat wo kein komma ist..
 
Äh, mal ne bescheidene Frage:

switch() schön und gut, aber woher bitte schön kommen den die "+", "-" etc?

Switch bekommt den Wert aus $_POST['umrechnen'].

Aber $_POST['umrechnen'] ist ein Submit und nicht z. B. ein select-Listenbereich mit den verschiedenen Optionen oder halt andere Formular-Elemente die entsprechende Rechenoperationen auswählbar machen.

Zumindest aus Deinem Codeschnipseln aus dem Post #12 geht es nicht hervor!

Anmerkung
Wir sind nicht hier um Deine Hausaufgaben zu machen.
 
Zuletzt bearbeitet:
ja das hab ich ja vergessen als ich copy/paste ausm taschenrechner gemacht habe.. ist aber auch schon nach D, Y, P und HUF geändert.
 
wie excalibur1976 schon sagt ist die Variable für switch auch falsch, dort sollte wohl die variable "$waehrung stehen.

Wo ist denn Zeile 10? kann man das im code auszug abzählen oder ist wrx.php eigtl länger?
 
wenn das was vom <input type="radio"... rüber kommt nun "waehrung" heißt dann ja
 
Editier mal da oben deinen Post und füge deinen aktuellen Code ein - es hilft nichts rumzuraten, wenn wir nicht wissen, wie dein aktueller Stand ist.
 
Zurück
Oben