php:Taschenrechner er irgnoriert die Voraussetzung in if befehl |
awsed unregistriert
|
|
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]
|
|
10.04.2009 12:08 |
|
|
awsed unregistriert
|
|
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>
|
|
10.04.2009 12:09 |
|
|
Thomas
Administrator
Dabei seit: 06.09.2006
Beiträge: 68
|
|
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!
|
|
10.04.2009 20:05 |
|
|
awsed unregistriert
|
|
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
|
|
11.04.2009 10:33 |
|
|
connzen unregistriert
|
|
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
|
|
12.04.2009 00:03 |
|
|
awsed unregistriert
|
|
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!
|
|
12.04.2009 14:20 |
|
|
|