Hallo Wolfgang,
Könnte man das Script so schreiben, dass direkt abgestimmt wird? Also das die Session ID sofort in den Hyperlink generiert wird und die Seite wo "JA! Meine Stimme für... abgeben" gar nicht mehr angezeigt wird.
Ich weiß nicht wie ich das anders erklären soll.
Ja. Einmal die Seite mit dem Abstimmungslink, dort muss folgendes geschehen.
1. Die Session muss gestartet werden: session_start.
2. Der Abstimmungslink wird generiert: <a href="abstimmung.php?<?php echo SID; ?>">Abstimmen</a>
In der Datei abstimmung.php muss nun zweierlei geschehen:
...
<?php
/* Überprüfen ob bereits abgestimmt wurde */
if (isset($_SESSION['abgestimmt']) and $_SESSION['abgestimmt']) {
/* Wenn schon mal abgestimmt wurde, Fehlermeldung anzeigen */
echo "<p>Sie können nur einmal abstimmen.</p>";
} else {
/* Ansonsten Stimme zählen (den Code dafür habe ich der
Einfachheit halber weggelassen) und sich merken, dass schonmal
abgestimmt wurde */
$_SESSION['abgestimmt'] = true;
echo "<p>Vielen Dank. Ihre Stimme wurde gezählt.</p>";
}
Das Array $_SESSION enhält die Session-Variablen, d.h. die Werte darin sind auf jeder Seite der Session verfügbar und ändern sich auch nicht.
Schöne Grüße,
Johannes