Erstes PhP Script

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/erstes_php_script_42401/page_1 - zur Vollversion wechseln!


MrDarK schrieb am 27.07.2002 um 11:54

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 schrieb am 27.07.2002 um 12:04

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 schrieb am 27.07.2002 um 12:07

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 schrieb am 27.07.2002 um 12:10

danke für die schnellen antworten werde ich probieren.
MfG
MrDarK


wobbo schrieb am 27.07.2002 um 13:02

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 schrieb am 27.07.2002 um 13:16

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 schrieb am 27.07.2002 um 13:18

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";


XeroXs schrieb am 27.07.2002 um 13:28

<deleted>

war a bledsinn hehe


MrDarK schrieb am 27.07.2002 um 13:30

fettes thx an alle die mir so schnell geholfen haben!!
Bersonders an Xeroxs und Tex.

MfG
MrDaRk


XeroXs schrieb am 27.07.2002 um 13:32

hab noch die änderung die da Tex erwähnt hat eingebaut, jetzt isses perfekt ;)


watchout schrieb am 27.07.2002 um 16:31

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 schrieb am 27.07.2002 um 21:29

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 schrieb am 28.07.2002 um 00:08

Zitat von funka
ich find den sinn hinter dem "taschenrechner" nicht :)
lies' doch mal den titel




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025