URL: https://www.overclockers.at/coding-stuff/erstes_php_script_42401/page_1 - zur Vollversion wechseln!
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.
Zitat<!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>
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.
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
danke für die schnellen antworten werde ich probieren.
MfG
MrDarK
da kann ich mich noch an einen wochenlangen streit im c++ forum erinnern, was effektiver wäre....Zitat von Teximho wäre auch ein switch besser, als die if-abfrage
Am Anfang würde ich noch folgendes machen:
Code: PHPif (phpversion() >= "4.1.0") { $op = $_POST["op"]; $w1 = $_POST["w1"]; $w2 = $_POST["w2"]; }
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...Zitat von wobboda 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![]()
wäre in deinem fall also (übrigens wennst nur einen befehl pro if-anweisung hast brauchst die {} klammern nicht..):Code:if(...) {...} elseif(...) {...} elseif(...) {...} elseif(...) {...} elseif(...) {...} else {...}
Code: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";
<deleted>
war a bledsinn hehe
fettes thx an alle die mir so schnell geholfen haben!!
Bersonders an Xeroxs und Tex.
MfG
MrDaRk
hab noch die änderung die da Tex erwähnt hat eingebaut, jetzt isses perfekt
also, ich tät's so machen:
(hab das unwichtige blabla weggelassen...)
__FILE__ ist eine Konstante, die den Dateinamen der aktuellen Datei enthält (incl. Pfade...), und die funktion basename() gibt ausschliesslich den Dateinamen zurück...Code:<?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;?>
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
lies' doch mal den titelZitat von funkaich find den sinn hinter dem "taschenrechner" nicht
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025