"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Erstes PhP Script

MrDarK 27.07.2002 - 11:54 565 12
Posts

MrDarK

Bloody Newbie
Registered: Jun 2002
Location: Stmk/Jdbg
Posts: 7
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>

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
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?
Avatar
Registered: Aug 2000
Location: salzburg
Posts: 1844
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
Registered: Jun 2002
Location: Stmk/Jdbg
Posts: 7
danke für die schnellen antworten werde ich probieren.
MfG
MrDarK

wobbo

...
Registered: Apr 2001
Location: Drehstuhl :)
Posts: 1022
Zitat von Tex
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 :rolleyes: :D

Philipp

Here to stay
Registered: Jul 2001
Location: Wien
Posts: 1924
Am Anfang würde ich noch folgendes machen:

Code: PHP
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
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10334
Zitat von wobbo
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 :rolleyes: :D
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..
Code:
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..):
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";
Bearbeitet von XeroXs am 27.07.2002, 13:31

XeroXs

doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10334
<deleted>

war a bledsinn hehe
Bearbeitet von XeroXs am 27.07.2002, 13:30

MrDarK

Bloody Newbie
Registered: Jun 2002
Location: Stmk/Jdbg
Posts: 7
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
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10334
hab noch die änderung die da Tex erwähnt hat eingebaut, jetzt isses perfekt ;)

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
also, ich tät's so machen:
(hab das unwichtige blabla weggelassen...)
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;?>
__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)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von funka
ich find den sinn hinter dem "taschenrechner" nicht :)
lies' doch mal den titel
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz