php:Taschenrechner er irgnoriert die Voraussetzung in if befehl

Neue Frage »

Auf diesen Beitrag antworten »
awsed php:Taschenrechner er irgnoriert die Voraussetzung in if befehl

hallo leute,

ich muss für die Schule einmal ein einfachen und schweren Taschenrechner in php programmieren, jedoch scheitere ich schon beim einfachen. Irgendwie ignoriert er die Vorraussetzung, das es Zahlen oder zeichen sein müssen, und rechnet fröhlich weiter egal was ich eintippe, irgendwie wird der else Befehl nicht ausgeführt. Warum?[color=#000000][/color]
[color=#000000][/color]
[color=#000000]<html><body><form method='POST'>[/color]
[color=#000000]Zahl1: <input name='Zahl1'><br>[/color]
[color=#000000]Zeichen: <input name='Zeichen'><br>[/color]
[color=#000000]Zahl2: <input name='Zahl2'><br>[/color]
[color=#000000]<input type='submit' value='Rechnen'>[/color]
[color=#000000]</form></body></html>[/color]
[color=#000000][/color]
[color=#000000]<html><body><?php [/color]
[color=#000000]$a= $_POST ["Zahl1"];[/color]
[color=#000000]$b= $_POST ["Zeichen"];[/color]
[color=#000000]$c= $_POST ["Zahl2"];[/color]
[color=#000000][/color]
[color=#000000]if($a==float && $b=="+" OR "-" OR "/" OR ":" OR "*" OR "Wurzel" OR "Exponent" && $c==float)[/color]
[color=#000000]{if ($b=="+")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcadd($a,$c,5);[/color]
[color=#000000]}[/color]
[color=#000000]elseif($b=="-")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcsub($a,$c,5);[/color]
[color=#000000]}[/color]
[color=#000000]elseif($b=="*")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcmul($a,$c,5);[/color]
[color=#000000]}[/color]
[color=#000000]elseif($b=="/")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcdiv($a,$c,5);[/color]
[color=#000000]}[/color]
[color=#000000]elseif($b==":")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcdiv($a,$c,5);[/color]
[color=#000000]}[/color]
[color=#000000]elseif($b=="Wurzel")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcsqrt($a,5);[/color]
[color=#000000]}[/color]
[color=#000000]echo $d;[/color]
[color=#000000]}else {echo "Fehler in der eingabe, bitte nachmal Versuchen.";}[/color]
[color=#000000]echo "<br>Wenn sie wurzeln wollen, schreiben sie Wurzel in der Eingabe Zeichen <br>[/color]
[color=#000000]Wenn sie exponentzieren wollen, schreiben sie Exponent in der Eingabe Zeichen";[/color]
[color=#000000][/color]
[color=#000000][/color]
[color=#000000]?></body></html>[/color]
[color=#000000][/color]
 
Auf diesen Beitrag antworten »
awsed

sry ich meinte das


<html><body><form method='POST'>
Zahl1: <input name='Zahl1'><br>
Zeichen: <input name='Zeichen'><br>
Zahl2: <input name='Zahl2'><br>
<input type='submit' value='Rechnen'>
</form></body></html>

<html><body><?php
$a= $_POST ["Zahl1"];
$b= $_POST ["Zeichen"];
$c= $_POST ["Zahl2"];

if($a==float && $b=="+" OR "-" OR "/" OR ":" OR "*" OR "Wurzel" OR "Exponent" && $c==float)
{if ($b=="+")
{
$d=bcadd($a,$c,5);
}
elseif($b=="-")
{
$d=bcsub($a,$c,5);
}
elseif($b=="*")
{
$d=bcmul($a,$c,5);
}
elseif($b=="/")
{
$d=bcdiv($a,$c,5);
}
elseif($b==":")
{
$d=bcdiv($a,$c,5);
}
elseif($b=="Wurzel")
{
$d=bcsqrt($a,5);
}
echo $d;
}else {echo "Fehler in der eingabe, bitte nachmal Versuchen.";}
echo "<br>Wenn sie wurzeln wollen, schreiben sie Wurzel in der Eingabe Zeichen <br>
Wenn sie exponentzieren wollen, schreiben sie Exponent in der Eingabe Zeichen";


?></body></html>
Auf diesen Beitrag antworten »
Thomas

Deine IF-Bedingung ist falsch:

if($a==float && $b=="+" OR "-" OR "/" OR ":" OR "*" OR "Wurzel" OR "Exponent" && $c==float)

$a==float <- glaube nicht, dass man den Typ so überprüfen kann, in PHP sind Variablen sowieso schwach typisiert, mach besser eine Typumwandlung

Und bei $b musst du das nach dem Schema schreiben: $b=="+" OR $b=="-" ... und Klammern setzen!
Auf diesen Beitrag antworten »
awsed

vielen Dank für deine antwort. Also ich hab jetzt den Zahlenwert integer genommen, und habe nach jedem or, oder eher gesagt vor jedem Rechenzeichen $b== gesetzt. Nun rechnet er aber gar nicht mehr und zeigt sofort die Fehlermeldung an, hast du ne Ahnung warum?

EIne Frage hät ich noch, bei dem schweren Taschenrechner benutze ich buttons, bloß wie kann ich in einem if Befehl abfragen( wenn er diesen Button angeklickt hat dann...)


mfg Awsed
 
Auf diesen Beitrag antworten »
connzen Taschenrechner er irgnoriert die Voraussetzung in if befehl

Hallo awsed,

ich denke, was Du haben willst, ist das hier:

if(is_float($a) && $b == "+" OR $b == "-" OR $b == "*" OR $b == ":" OR $b="Wurzel" OR $b = "Exponent" && is_float($c))
{
...
}

Ich würde das ganze aber eher mit einer Switch-Anweisung machen, das ist eleganter.
Ganz abgesehen davon würde ich einen Taschenrechner im Browser eher mit JavaScript schreiben. Dann brauchst Du keinen Server und kannst sogar alles ohne Seiten-Reloads machen.

Zum Nachlesen von PHP-Funktion empfehlen ich Dir das dt. PHP-Handbuch auf php.net/manual/de

Gruß,
C.
--
rechtsklick.org -- Aktiv gegen Rechtsradikalismus im Internet
Auf diesen Beitrag antworten »
awsed

hallo

nunja ich mach das ja für die Schule, die verlangen leider php.
Leider überprüft es immer noch nicht.
Was solls, dann frag ich das in der Schule.
Danke!
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »