Hello,
$_SESSION['forms'][$formularbezeichnung][$n]['id'] = $_SERVER['UNIQUE_ID'];
$_SESSION['forms'][$formularbezeichnung][$n]['name'] = $_SERVER['UNIQUE_ID'];
$_SESSION['forms'][$formularbezeichnung][$n]['time'] = timestamp();
echo "<input type="hidden" name="ctrl[forms]" value="".
base64encode(
$_SESSION['forms'][$formularbezeichnung][$n]['name']."-".
$_SESSION['forms'][$formularbezeichnung][$n]['id']
)."" />\n";
Das Eintragen der Sessiondaten lässt Du durch eine Funktion bewerkstelligen, die gleichzeitig das Array $_SESSION['forms'] nach Einträgen durchsucht, deren Zeit abgelaufen ist, und die diese kennzeichnet (Form-ID entfernt) oder beseitigt.
[$formularbezeichnung] ist notwendig, da ein Client sicherlich unterschiedliche
Formulare verwendet
[$formularbezeichnung][$n] ist notwendig, da manche Formulare auch mehrfach geöffnet
werden können.
$_SERVER['UNIQUE_ID'] wird vom Apachen bei jedem Request automatisch generiert.
Die ID muss man auch irgendwie im LOG erreichen können, ich
weiß aber selber leider noch nicht, wie. Das würde dann
die Sache rund machen. In der DB und im Log eintragen...
$_SESSION['forms'][$formularbezeichnung][$n]['name'] ist dafür da, dass Du auch einen
freien Unique Namen nehem kannst. Den kannst Du in der
Struktur stehenlassen, auch wenn das Form abgelaufen ist.
Wenn dann noch ein Request mit diesem Namen kommmt,
hatte der User sich das Form zwar legal beschafft, es
hatte ich aber schon erledigt.
Spielarten gibt es genug...
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
