Erstes PhP Script
MrDarK 27.07.2002 - 11:54 565 12
MrDarK
Bloody Newbie
|
Hallo!!! Ich möchte gerne wissen ob bei dem unten genannte script noch verbesserungen möglich sind. Es sollte einen Taschenrechner darstellen. Ich habe erst angefangen zu Programmieren. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Unbenanntes Dokument</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head>
<body> <form name="form1" method="post" action=""> <input name="w1" type="text" id="w1"> <input name="op" type="text" id="op" size="1" maxlength="1"> <input name="w2" type="text" id="w2"> <input type="submit" name="Submit" value="Berrechnen">
<?php
if ($op == "/") { echo ($op = $w1 / $w2); }
if ($op == "*") { echo ($op = $w1 * $w2); }
if ($op == "-") { echo ($op = $w1 * w2); }
if ($op == "+") { echo ($op = $w1 + $w2); }
if ($op == null) { echo "Es wurde kein Opeator eingegeben"; }
?> </form> </body> </html>
|
noledge
CWNE #540
|
lass das berechnungsskript erst laufen, wenn ein submit ausgeführt wurde. ich kann als operator auch "f" eingeben, keine fehlermeldung. wenn ich anstatt zahlen buchstaben eingebe (und einen richtigen operator) kommt "es wurde kein operator eingegeben". gib eine action bei der form an.
|
Tex
got r00t?
|
was mir sonst noch auffällt: echo ($op = $w1 / $w2); solltest du imho durch echo ($w1 / $w2); ersetzen imho wäre auch ein switch besser, als die if-abfrage
|
MrDarK
Bloody Newbie
|
danke für die schnellen antworten werde ich probieren. MfG MrDarK
|
wobbo
...
|
imho wäre auch ein switch besser, als die if-abfrage da kann ich mich noch an einen wochenlangen streit im c++ forum erinnern, was effektiver wäre.... manche haben da mitgeredet, und wußten ned amal was assembler ist geschweige denn wie ifs und switches in assembler dann ausschaun
|
Philipp
Here to stay
|
Am Anfang würde ich noch folgendes machen: if (phpversion() >= "4.1.0") {
$op = $_POST["op"];
$w1 = $_POST["w1"];
$w2 = $_POST["w2"];
}
Dann funktioniert das Script auch mit register_globals = off
|
XeroXs
doh
|
da kann ich mich noch an einen wochenlangen streit im c++ forum erinnern, was effektiver wäre.... manche haben da mitgeredet, und wußten ned amal was assembler ist geschweige denn wie ifs und switches in assembler dann ausschaun hehe.. i hab kA was vom compilen her besser is, aba am elegantesten is denk ich die elseif variante... die is ja quasi für solche fälle ideal... also.. if(...) {...}
elseif(...) {...}
elseif(...) {...}
elseif(...) {...}
elseif(...) {...}
else {...}
wäre in deinem fall also (übrigens wennst nur einen befehl pro if-anweisung hast brauchst die {} klammern nicht..): if ($op == "/") echo ($w1 / $w2);
elseif ($op == "*") echo ($w1 * $w2);
elseif ($op == "-") echo ($w1 * $w2);
elseif ($op == "+") echo ($w1 + $w2);
elseif ($op == null) echo "Es wurde kein Operator eingegeben";
else echo "Es wurde kein gültiger Operator eingegeben";
Bearbeitet von XeroXs am 27.07.2002, 13:31
|
XeroXs
doh
|
<deleted>
war a bledsinn hehe
Bearbeitet von XeroXs am 27.07.2002, 13:30
|
MrDarK
Bloody Newbie
|
fettes thx an alle die mir so schnell geholfen haben!! Bersonders an Xeroxs und Tex.
MfG MrDaRk
Bearbeitet von MrDarK am 27.07.2002, 13:34
|
XeroXs
doh
|
hab noch die änderung die da Tex erwähnt hat eingebaut, jetzt isses perfekt
|
watchout
Legendundead
|
also, ich tät's so machen: (hab das unwichtige blabla weggelassen...) <?php
// Stellt sicher, dass auch wenn register_globals off is' die
// variablen den richtigen wert haben
$w1=$HTTP_POST_VARS["w1"];
$w2=$HTTP_POST_VARS["w2"];
$op=$HTTP_POST_VARS["op"];
if ($op == "/")
{$ergebnis = $w1 / $w2;}
elseif ($op == "*")
{$ergebnis = $w1 * $w2;}
elseif ($op == "-")
{$ergebnis = $w1 * w2;}
elseif($op == "+")
{$ergebnis = $w1 + $w2;}
else
{$ergebnis = "Es wurde kein gültiger Operator eingegeben";}
?>
<form name="form1" method="post" action="<?=basename(__FILE__);?>">
<input name="w1" type="text" id="w1" VALUE="<?=$ergebnis;?>">
<input name="op" type="text" id="op" size="1" maxlength="1">
<input name="w2" type="text" id="w2">
<input type="submit" name="Submit" value="Berrechnen"><br>
<?="Ergebnis:".$ergebnis;?>
__FILE__ ist eine Konstante, die den Dateinamen der aktuellen Datei enthält (incl. Pfade...), und die funktion basename() gibt ausschliesslich den Dateinamen zurück...
|
funka
Legend ex-prophet(down below)
|
ich find den sinn hinter dem "taschenrechner" nicht bau doch den windows taschenrechner nach mit accesskeys kannst es sogar wie den win rechner verwenden das wuerd wesentlich mehr sinn machen imho
|
watchout
Legendundead
|
ich find den sinn hinter dem "taschenrechner" nicht lies' doch mal den titel
|