Pik
04.03.2006, 17:18
Joa, ich hab mich etwas mit PHP beschäftigt und habe jetzt (und warscheinlich auch zukünftig) ein paar fragen.
So, zu Übungszwecken habe ich mir heute 'nen Taschenrechner gebastelt. Der funktioniert auch soweit:
<?php
echo "
<b>Taschenrechner</b>
<form action='main.php?site=formular' method='post'>
<p>Zahl 1:<br><input name='zahl1' type='text' size='30' maxlength='30'></p>
<p>Zahl 2:<br><input name='zahl2' type='text' size='30' maxlength='40'></p>
<br><br>
<select name='rechenmeth'>
<option>addieren</option>
<option>subtrahieren</option>
<option>multiplizieren</option>
<option>dividieren</option>
</select>
<input type='submit'>
</form>";
$ergebnis=0;
switch($_POST['rechenmeth'])
{
case "addieren":
$ergebnis=($_POST['zahl1'] + $_POST['zahl2']);
break;
case "subtrahieren":
$ergebnis=($_POST['zahl1'] - $_POST['zahl2']);
break;
case "multiplizieren":
$ergebnis=($_POST['zahl1'] * $_POST['zahl2']);
break;
case "dividieren":
$ergebnis=($_POST['zahl1'] / $_POST['zahl2']);
break;
default:
$ergebnis=($_POST['zahl1'] + $_POST['zahl2']);
break;
}
echo "Ergebbis: ".$ergebnis;
?>
Allerdings mit folgenden Meldungen:
Notice: Undefined index: rechenmeth in C:\Programme\XAMPP\xampp\htdocs\TESTORDNER\formular.php on line 23
Notice: Undefined index: zahl1 in C:\Programme\XAMPP\xampp\htdocs\TESTORDNER\formular.php on line 42
Notice: Undefined index: zahl2 in C:\Programme\XAMPP\xampp\htdocs\TESTORDNER\formular.php on line 42
Nach dem ersten Rechnen sind die Meldungen logischerweise weg. Scheinbar ist ja ein vordefinierter Wert für die Arrayelemente erwünschenswert, aber wie bzw. wo wäre das denn sinnvoll machbar?
Dann noch eine generelle Frage zur Struktur von php-Dateien. HTML-Elemente kann man ja einfach so reinschreiben, jede Zeile per echo ausgeben oder ganze Blöcke mit echo ausgeben. Am einfachsten ist logischwerweise erstere Variante, wegen dem Escapen von Zeichen, aber ist das erlaubt?
Ach ja, gibt's ne Seite, die mehrer kleine Aufgaben zu einem Thema vorgibt? Due Tutorials sind ja alle ganz nett, aber Lernen durch Lesen bringt nicht halb soviel wie durch selber probieren. Außerdem vergißt man schnell die Hälfte und schreibt im Endeffekt nur die Tutorialbeispiele ab, wenn man was brauch.
So, zu Übungszwecken habe ich mir heute 'nen Taschenrechner gebastelt. Der funktioniert auch soweit:
<?php
echo "
<b>Taschenrechner</b>
<form action='main.php?site=formular' method='post'>
<p>Zahl 1:<br><input name='zahl1' type='text' size='30' maxlength='30'></p>
<p>Zahl 2:<br><input name='zahl2' type='text' size='30' maxlength='40'></p>
<br><br>
<select name='rechenmeth'>
<option>addieren</option>
<option>subtrahieren</option>
<option>multiplizieren</option>
<option>dividieren</option>
</select>
<input type='submit'>
</form>";
$ergebnis=0;
switch($_POST['rechenmeth'])
{
case "addieren":
$ergebnis=($_POST['zahl1'] + $_POST['zahl2']);
break;
case "subtrahieren":
$ergebnis=($_POST['zahl1'] - $_POST['zahl2']);
break;
case "multiplizieren":
$ergebnis=($_POST['zahl1'] * $_POST['zahl2']);
break;
case "dividieren":
$ergebnis=($_POST['zahl1'] / $_POST['zahl2']);
break;
default:
$ergebnis=($_POST['zahl1'] + $_POST['zahl2']);
break;
}
echo "Ergebbis: ".$ergebnis;
?>
Allerdings mit folgenden Meldungen:
Notice: Undefined index: rechenmeth in C:\Programme\XAMPP\xampp\htdocs\TESTORDNER\formular.php on line 23
Notice: Undefined index: zahl1 in C:\Programme\XAMPP\xampp\htdocs\TESTORDNER\formular.php on line 42
Notice: Undefined index: zahl2 in C:\Programme\XAMPP\xampp\htdocs\TESTORDNER\formular.php on line 42
Nach dem ersten Rechnen sind die Meldungen logischerweise weg. Scheinbar ist ja ein vordefinierter Wert für die Arrayelemente erwünschenswert, aber wie bzw. wo wäre das denn sinnvoll machbar?
Dann noch eine generelle Frage zur Struktur von php-Dateien. HTML-Elemente kann man ja einfach so reinschreiben, jede Zeile per echo ausgeben oder ganze Blöcke mit echo ausgeben. Am einfachsten ist logischwerweise erstere Variante, wegen dem Escapen von Zeichen, aber ist das erlaubt?
Ach ja, gibt's ne Seite, die mehrer kleine Aufgaben zu einem Thema vorgibt? Due Tutorials sind ja alle ganz nett, aber Lernen durch Lesen bringt nicht halb soviel wie durch selber probieren. Außerdem vergißt man schnell die Hälfte und schreibt im Endeffekt nur die Tutorialbeispiele ab, wenn man was brauch.