Hello,
Hallo Leute
bin seit Tagen auf der Suche nach einer Lösung habe schon duzend Sachen ausprobiert und mich komplett duch die Page gearbeitet.
Man kann zwischen den Noten 1-6 wählen und dan mit dem Button benoten eine Benotung vornehmen.
<?php ### benotung.php ###
$EVA = 'E'; ## EVA-Merker Nächster Verarbeitungsschritt = "Eingabe erforderlich"
$_errors = array(); ## Fehlermeldungen der Verarbeitung sammeln
if(isset($_POST['benoten']))
{
if (!isset($_POST['note']) or (intval($_POST['note'] < 1) or (intval $_POST['note'] > 6))
{
$_error[] = "Fehler bei der Note. Bitte wählen Sie im bereich zwischen 1 und 6";
}
else
{
$EVA = 'V';
## Verarbeitung durchführen
$note = $_POST["note"];
## und eintragen oder aufaddieren und zählen oder was auch immer
## wenn Verarbeitung geklappt hat
$EVA = 'A';
## sonst $EVA = 'E'; ## weitere eingabe erforderlich
}
}
if (count($_errors) > 0)
{
## ausgabe aller bei der Verarbeitung aufgelaufenen Fehler
}
if ($EVA = 'A') ## Ergebnis des Scriptes ausgeben
{
## Dankeschön
}
else
{
?>
<form method="POST" action="benotung.php">
<input type="radio" name="note" value="1">1<br>
<input type="radio" name="note" value="2">2<br>
<input type="radio" name="note" value="3">3<br>
<input type="radio" name="note" value="4">4<br>
<input type="radio" name="note" value="5">5<br>
<input type="radio" name="note" value="6">6<br>
<input type="submit" name="benoten" value="benoten">
</form>
<?php
}
So könnte es klappen, mal eben schnell hingestrickt.
Aufteilung in die Bereiche
---------------------------
- Definitionehn und Includes
- Deklarationen von Funktionen
- Datenübernahme
- Verarbeitung
- Ausgabe = Vorbereitung der Eingabe oder Erfolgsmeldung
Zu dem anderen Problem
Nimm gleich submit-Buttons. Es können beliebig viele in einem Formular definiert werden.
Glaube niemals Deinen Usern. Die könnten auch 133 als Note übertragen. Wenn Du keinen Range-Check durchführst, kann man Dir alles unterjubeln.
Nimm die Methode GET nur dann, wenn das Script mit diesem Patameter auch als Link oder Bookmark eingetragen werden darf. Wenn Werte zur Verarbeitung erfragt werden, nimm immer POST.
Bau noch eine Formular-ID (Unique-ID) ein, die beim Ausliefern ($EVA= 'E') des Formulars an den Client als Hidden-Feld übertragen wird. Trag diese ID in eine LOG-Datei ein, in der steht, "unbenutzt, ausgeliefert, erledigt". Wenn nun ein POST zur auf das Formular kommt, prüfe, ob diese ID in der Tabelle steht, Wenn ja, prüfe ob sie schon den erledigt-Merker hat, wenn ja setze $_ERRORS[] = "Multipost oder Benutzermanipulation..." $_EVA ist dann 'A'
Alles verstanden?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau