Hallo,
ich mache mich an meinen ersten kleinen Taschenrechner ran, der zwar funktioniert, aber ich bei den Fallentscheidungen hänge.
Hier erst der Code:
Bitte erst einmal selbst ausprobieren.
Es wird eine Fehlermeldung ausgegeben, wenn Name und/oder eine Zahl in einer oder beiden der Felder fehlt.
Obwohl eine Fehlermeldung ausgegeben wird, wird das Ergebnis angezeigt.
Wie kann ich es so schreiben, dass das Ergebnis auch nur angezeigt wird, wenn Name und beide Zahlen vorhanden sind?
Warum beide Zahlen?
Ich weiß, dass wenn eines der beiden Zahlenfelder leer ist, wird das als 0 gewertet, aber dementsprechend leer sieht das Feld dann unter "Aufgabe" aus.
Besser wäre es, wenn eines der beiden Felder leer wäre, eine 0 ausgegeben wird, statt leer.
Hat jemand Ideen für die beiden Bedingungen?
Ich habe es schon mit break versucht.
Aber auch mit if($fehler) echo "" else echo $ergebnis... so ungefähr.
ich mache mich an meinen ersten kleinen Taschenrechner ran, der zwar funktioniert, aber ich bei den Fallentscheidungen hänge.
Hier erst der Code:
PHP:
<?php
$title = "Taschenrechner";
include ("head.php");
if (isset($_REQUEST['do']) && $_REQUEST['do'] == "check")
{
// Pflichtfeldkontrolle
$fehler = "";
if (!isset($_REQUEST['zahla']) || $_REQUEST['zahla'] == "")
{
$fehler = "<strong>Bitte Aufgabe eingeben.</strong><br>";
}
$fehler = "";
if (!isset($_REQUEST['zahlb']) || $_REQUEST['zahlb'] == "")
{
$fehler .= "<strong>Bitte Aufgabe eingeben.</strong><br>";
}
$keinname = "";
if (!isset($_REQUEST['name']) || $_REQUEST['name'] == "")
{
$keinname = "<strong>Bitte gebe zuerst deinen Namen ein!</strong><br>";
}
}
echo "<h1>Kleiner Taschenrechner</h1>";
if ($operator == "+")
{
$ergebnis = $zahla + $zahlb;
}
if ($operator == "-")
{
$ergebnis = $zahla - $zahlb;
}
if ($operator == "*")
{
$ergebnis = $zahla * $zahlb;
}
if ($operator == "/")
{
$ergebnis = $zahla / $zahlb;
$rest = $zahla % $zahlb;
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<?php if ($keinname) echo '<font color="red"' . $keinname . '</font>'; ?>
<p><strong>Dein Name</strong>: <input type="text" name="name" size="20"></p>
<br>
<p><strong><u>Aufgabe eingeben</u></strong></p>
<?php if ($fehler) echo '<font color="red"' . $fehler . '</font>'; ?>
<br>
<p>
<input type="text" name="zahla" size="20" maxlength="20">
<input type="radio" name="operator" value="+" checked>+
<input type="radio" name="operator" value="-">-
<input type="radio" name="operator" value="*">*
<input type="radio" name="operator" value="/">/
<input type="text" name="zahlb" size="20" maxlength="20"> = <?php echo "<strong>" . $ergebnis . "</strong>"; ?></p>
<?php if ($ergebnis) echo "<strong><u>Aufgabe:</u></strong> <br>" . $zahla . " " .$operator . " " . $zahlb . " = " . $ergebnis; ?>
<?php if ($rest) echo " <br><br><strong><u>Rest ist:</u></strong><br>" . $rest; ?>
<?php if ($ergebnis) echo "<br><br><strong>Haha :D " . $name . ", du hättest die Aufgabe bestimmt falsch gerechnet!. :D<br>"; ?>
<p>
<input type="hidden" value="check" name="do">
<br>
<input type="submit" value="Ausrechnen"></p>
</form>
<?php
include ("footer.php");
?>
Bitte erst einmal selbst ausprobieren.
Es wird eine Fehlermeldung ausgegeben, wenn Name und/oder eine Zahl in einer oder beiden der Felder fehlt.
Obwohl eine Fehlermeldung ausgegeben wird, wird das Ergebnis angezeigt.
Wie kann ich es so schreiben, dass das Ergebnis auch nur angezeigt wird, wenn Name und beide Zahlen vorhanden sind?
Warum beide Zahlen?
Ich weiß, dass wenn eines der beiden Zahlenfelder leer ist, wird das als 0 gewertet, aber dementsprechend leer sieht das Feld dann unter "Aufgabe" aus.
Besser wäre es, wenn eines der beiden Felder leer wäre, eine 0 ausgegeben wird, statt leer.
Hat jemand Ideen für die beiden Bedingungen?
Ich habe es schon mit break versucht.
Aber auch mit if($fehler) echo "" else echo $ergebnis... so ungefähr.