Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Informatik in der Schule (http://www.informatikerboard.de/board/board.php?boardid=21)
--- php:Taschenrechner er irgnoriert die Voraussetzung in if befehl (http://www.informatikerboard.de/board/thread.php?threadid=498)


Geschrieben von awsed am 10.04.2009 um 12:08:

  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]



Geschrieben von awsed am 10.04.2009 um 12:09:

 

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>



Geschrieben von Thomas am 10.04.2009 um 20:05:

 

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!



Geschrieben von awsed am 11.04.2009 um 10:33:

 

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



Geschrieben von connzen am 12.04.2009 um 00:03:

  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



Geschrieben von awsed am 12.04.2009 um 14:20:

 

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!


Forensoftware: Burning Board, entwickelt von WoltLab GmbH