Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » Online Taschenrechner

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
03.01.2005, 17:04 Uhr
KaraHead



Hi, ich hab mich ein bischen mit PHP beschäftigt und versucht einen kleinen Taschenrechner zu machen. Doch irgendwarum will es aus irgendeinem Grund nicht gehen. Kann euch leider nicht sagen wo genau es hagt, nur bitten mal drüber zu gucken.


PHP 4:
<html>
<head>
<title>smallCalc</title>
<meta name="author" content="KaraHead">
</head>
<body>
<?php
  if(!$send){
?>
<font size="+1" color="grey">Bitte geben sie 2 Werte ein.</font>
<form method="POST" action="<?php echo $PHP_SELF?>">
  <table>
   <tr><td><b>Wert 1</b>:</td><td><input type="Text" name="val1"></td></tr>
   <tr><td><b>Wert 2</b>:</td><td><input type="Text" name="val2"></td></tr>
   <tr>
    <td><input type="checkbox" name="plus" checked>Addition</input></td>
    <td><input type="checkbox" name="minus">Subtraktion</input></td>
   </tr>
   <tr>
    <td><input type="checkbox" name="mal">Multiplikation</input></td>
    <td><input type="checkbox" name="geteilt">Division</input></td>
   <tr>
  </table>
   <hr>
   <input type="submit" name"send" value="Berechnen">
   <input type="reset" value="Loeschen">
</form>
<?php
   }else{
          echo "<hr>";
          echo "<font size=\"+1\" color=\"blue\">Das Ergebnis Ihrer Rechnung:</font><br>";
          echo "<textarea>";
                 if($plus)        echo "$val1 + $val2 = ".$val1+$val2;
                 elseif($minus)   echo "$val1 - $val2 = ".$val1-$val2;
                 elseif($mal)     echo "$val1 * $val2 = ".$val1*$val2;
                 elseif($geteilt) echo "$val1 / $val2 = ".$val1/$val2;
                 else             echo "Unbekannter Fehler!";
          echo "</textarea>";
   }
?>
</body>
</html>


Dieser Post wurde am 03.01.2005 um 17:05 Uhr von KaraHead editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.01.2005, 18:11 Uhr
~...
Gast


Hmm, wharscheinlich hast du register_globals auf deinem Server nicht an, was auch gut so ist. Benutz lieber Superglobals, in deinem Fall $_POST, oder die veralteten langen Arrays, in deinem Fall $HTTP_POST_VARS. Du musst nur den im Input stehenden Namen als Arrayindex benutzen, d.h. $_POST['geteilt'] bzw. $HTTP_POST_VARS['geteilt']. Und nochwas nebenbei: if ($plus) ist schlechter Stil, schreib es lieber so um sicher zu gehen: if (isset($plus)), damit testest du nämlich, ob eine Variable diesen Namens schon existiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.01.2005, 18:41 Uhr
KaraHead



Danke hab's geändert. Doch es passiert immer noch nichts.
ich glaub, dass der Fehler hier liegt:

PHP 4:
if(!isset($_POST['send'])){      



Denn sobald ich das Ausrufezeichen wegmache zeigt er mir die Ausgabe aber nicht die Form an.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.01.2005, 19:06 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


bei den superglobals würde ich lieber


PHP 4:
if(array_key_exists("send",$_POST))
{
  // jo
}
else
{
  // ne
}



schreiben, isset($_POST['...']) gibt immer true
--
class God : public ChuckNorris { };

Dieser Post wurde am 03.01.2005 um 19:07 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.01.2005, 19:10 Uhr
Pablo
Supertux
(Operator)


Du müsstest deinen pache Server neu starten, damit die Änderungen. Und benutze lieber $_POST, das ist sicherer. Und in <form method solltest du post klein schreiben.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.01.2005, 19:46 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


<?php echo $PHP_SELF?>

kannste dir da drin sparen, einfach leer lassen oder ein # rein, das geht auch und ist besser
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.01.2005, 20:11 Uhr
~...
Gast



Zitat von KaraHead:
<input type="submit" name"send" value="Berechnen">


Erm, ja seh ich jetzt erst, du hast n Gleichheitszeichen vergessen, so kanns auch mit der Abfrage auf 'Button ist gedrückt' nie klappen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.01.2005, 20:29 Uhr
Pablo
Supertux
(Operator)


allerdings, jetzt weiß ich, was mich so gestört hat, aber ich hab den Fehler trotzdem nicht erkannt.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
03.01.2005, 20:45 Uhr
~...
Gast



Zitat von FloSoft:
schreiben, isset($_POST['...']) gibt immer true


Das ist so nicht ganz richtig. Du meinst wohl isset($_POST) gibt immer true zurück, es sei denn Superglobals werden von der PHP Version nicht unterstützt. Aber wenn der Index 'send' noch nicht existiert, d.h. der Button noch nicht gedrückt wurde, existiert auch $_POST['send'] nicht (nachprüfen kann man das per print_r($_POST)). Jedoch ist deine Variante der Abfrage auch korrekt und elegant, keine Frage.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
03.01.2005, 20:48 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja ok, isset($_POST['...']) ist nicht immer true, jedenfalls hab ich festgestellt das bei gewissen systemen dies aber der fall ist, egal ob ... existiert oder nicht. Weiterhin gibt isset($POST['...']) bei aktivierten Warnungen eine Warnung bzw Notice aus, array_key_exists aber nicht, darum sollte man die variante um array-keys zu überprüfen bevorziehend verwenden.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: