Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Hyvin yksinkertainen PHP Laskin

konsta93 [11.06.2008 01:51:18]

#

Hyvin yksinkertainen PHP laskin.
Neljän laskutavan laskin.

 <?php
$molemmatluvut = array($luku1, $luku2);
$kaikkilaskutavat = array($plus, $minus, $kerto, $jako);
$minusjaplus = array($minus, $plus);
$page = $PHP_SELF;
echo "<title>PHP - Laskin</title>";
echo "<table align=\"center\" style=\"border-color:black;border-width:1px;border-style:double;\">";
echo "<form action=\"$page?laske=kasittely\" method=\"post\">";
echo "<input type=\"hidden\" name=\"lomake\">";

echo "<tr><td><font color=\"red\"><code><b>*</b></code></font><code><i>Luku 1:</b></code></i> <input type=\"text\" name=\"luku1\" maxlength=\"7\" size=\"6 \"></tr></td>";


echo "<tr><td><font color=\"red\"><code><b>*</b></code></font><code><i>Luku 2:</b></code></i> <input type=\"text\" name=\"luku2\" maxlength=\"7\" size=\"6\"></tr></td>";

echo "<tr><td><code> Kaikki <font color=\"black\"><b>*</b></font>:llä kohdat täytetyt ovat pakollisia kohtia</code></td></tr>";

echo "<tr><td><b>+</b><input type=\"radio\" value=\"plus\" name=\"plus\" /><code><font size=\"3\">*</font></code><input type=\"radio\" value=\"kerto\" name=\"kerto\"></td></tr>";

echo "<tr><td><code><b>-</b></code><input type=\"radio\" value=\"minus\" name=\"minus\" /><code><font size=\"3\"><code>/</code></font></code><input type=\"radio\" value=\"jako\" name=\"jako\"></td></tr></td>";



echo "<tr><td><input type=\"submit\" value=\"Laske!\"></tr></td>";
echo "</table>";
echo "</form>";


if($_GET['laske'] == "kasittely") {
//Seuraavat laskutavat +, -, * ja /
$tulos1 = $luku1 + $luku2;
$tulos2 = $luku1 - $luku2;
$tulos3 = $luku1 / $luku2;
$tulos4 = $luku1 * $luku2;


//Ehtolaisekkeita
if(empty($lomake)) {echo "<font face=\"green\"><kbd><i><b>Virheet:</b></i></kbd></font><br>";}
if(empty($luku1)) {echo "<code>Luku 1:n <b>laatikko</b> on täytettvä, jotta voisit jatkaa.</code><br>"; exit();}
if(empty($luku2)) {echo "<code>Luku 2:n <b>laatikko</b> on täytettvä, jotta voisit jatkaa.</code><br>"; exit();}
if(empty($kaikkilaskutavat)) {echo "<code>Edes yksi <b>laskutapa</b> on valittava !</code><br>";}

if(isset($kaikkilaskutavat)) {
if($plus == "plus") {echo "<code>Pluslaskun tulos:</code> <code><b>$tulos1</b></code><br>";}
if($minus == "minus") {echo "<code>Miinuslaskun tulos:</code> <code><b>$tulos2</b></code><br>";}
if($kerto == "kerto") {echo "<code>Jakolaskun tulos:</code> <code><b>$tulos4</b></code><br>";}
if($jako == "jako") {echo "<code>Kertolaskun tulos:</code> <code><b>$tulos3</b></code>";}
}
}
?>

peg [11.06.2008 09:21:43]

#

niin tämäkin

	<form action="<? '$PHP_SELF'; ?>" method="POST">
	Laske:
	<input type='text' name='las' size='50'>
	<input type='submit' value=' Laske '> <input type='reset' value='Tyhjennä'>
	</form>
<? @$lu = $_POST['las'];
  print "lasku: $lu === <b><u> tulos: "; $tu = "echo($lu);";@eval($tu);
?>

Lebe80 [11.06.2008 10:49:07]

#

Konstan koodissa on mielestäni paljon sellaisia ajatusvirheitä, joihin kannattaisi panostaa. Eli laskut yritetään laskea jo ennen kuin numeroita ja laskutapoja tarkistetaan. Todellisuudessa ohjelmoinnissa nuo pitäisi tehdä loogisesti, tarkistaa ensin onko kaikki tarvittavat tiedot saatu, ja tämän jälkeen "tehdä niille/niillä jotain".

Jos tuossa olisi vaikka tietokantaan lisäämistä, voisi tuossakin tapauksessa lisäillä ensiksi puutteellisia rivejä kantaan, ja lisäyksen jälkeen vasta älähdettäisiin puutteellisista tiedoista. Käyttäjä saattaisi lisätä "samoja rivejä" vahingossa.

konsta93 [11.06.2008 16:06:18]

#

Yritän ottaa nuo "ajatusvirheet" ensi kerralla huomioon. Kiitos huomautuksesta.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta