Formular nur mit bestimmtem Passwort absenden

Dude23

Mitglied
Hallo,

ich habe hier ein Formular, womit man in einer Hobbyfußball-Liga Spielabsagen über's Internet tätigen kann. Da es jetzt aber immer wieder vorkam, dass das Formular "missbraucht" wurde, wollten wir das ganze mit Passwörtern schützen.

Das Formular ist so aufgebaut, dass man zunächst das eigene Team auswählt, dann den Gegner, Datum, etc.

Jetzt sollte jedes Team ein Passwort bekommen. Das Formular sollte dann nur abgeschickt werden dürfen, wenn das eingegebene Passwort auch zum ausgewählten Team passt.

Ich hoffe, ich konnte mich verständlich ausdrücken ;)

Das Formular kann man hier sehen: http://www.bunteliga-regensburg.de/absage.php

MfG
Dude23
 
Hallo Dude23,

Dass das Formular abgesendet wird kannst du nicht verhindern!
(durch Javascript schon, aber das ist im Falle von Missbrauchsversuchen schnell deaktiviert und somit nutzlos. Auch die Passwörter müssten dann im Javascript-Quellcode stehen)
Was du mit einem Passwort absichern kannst ist die Auswertung des abgesendeten Formulars, also Serverseitig.
Wenn dass Formular gesendet wird, einfach das eingegebene Passwort vergleichen und im Falle einer falschen Eingabe die Auswertung übergehen und evtl. eine Fehlermeldung ausgeben o.Ä.

mfg
 
Wenn die Auswertung verhindert wird, wäre ich schon am Ziel.

Ein Passwort vergleiche ich ja mit z.B.
PHP:
$passwort == "geheim"
, wie aber mache ich klar, dass das Passwort mit dem übereinstimmt, dass dem Team zugeteilt wurde?

Wenn man also "Team1" anklickt, muss er ja das eingegebene Passwort mit einem anderen Wert vergleichen, als wenn man "Team2" anklickt.

MfG
Dude
 
Hi!

Zum einen solltest du jedem Team einen Wert zuweisen innerhalb des Selectfeldes
HTML:
<select name="team" size="3">
        <option value="1">Al Ferdaus</option>
        <option value="2">Armada Absolute</option>
        <option value="3">Bavarian Rangers 03</option>
...

dann kannst du im PHP Script mit $_POST['team'] auf den Wert zurückgreifen
und z.B. mittels eines Arrays die Passwörter festlegen
PHP:
$team_pw = array("1" => "blabla",
"2" => "muhmoep",
"3" => "nochnpass"
... etc);
mit $team_pw[$_POST['team']] würdest du den entsprechenden Passwort-Eintrag auswählen, den du dann zum Vergleich nutzen kannst.
also im Stile
PHP:
if($_POST['passwort'] === $team_pw[$_POST['team']]){
// normale Scriptbearbeitung
}
else{
// falsche Eingabe
}

Ich gehe jetzt mal davon aus dass du ohne Datenbank arbeitest, ansonsten sag bescheid ;) und überhaupt, hoffe hab mich einigermaßen verständlich ausgedrückt!

mfg
 
Zurück