Tom: formulare - eindeutigkeit - überprüfen

Beitrag lesen

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