[pmwiki-users-de] Fremdbestimmter Sessiondauer

Knut Alboldt pmwiki at alboldt.de
Fr Feb 29 01:09:13 CST 2008


Moin Peter !

Mit PHP geht das nicht, da PHP auf dem Host ausgeführt wird. D.H. 
solange der Anwender kein SUMIT drückt, bekommt der Host nichts mit.

Evt ginge das per HTML-Meta-tag refresh, dann ist aber der Input futsch.

Der Javascriptansatz ist wohl der einzig mögliche.
Der könnte, da er nur zum editieren benötigt wird, in die Definition der 
Editform untergebracht werden (kann neben der Definition über eine 
Wiki-Page auch über eine PM-Variable geschehen, dor wäre dann der 
richtige Platz).
Der Code müsste "onload" ausgeführt werden (Achtung ! bei zwei 
"onload"-Funktionen gewinnt u.U. nur die letzte !) und den Timer 
starten. Ggf könnte nach Ablauf des Timers per Javascript lokal der 
Forminhalt gesichert (weiss nicht ob in der Zwischenablage) und das 
wiedereinloggen automatisiert werden (redir zum Login-Formular), danach 
hätte man alles in der Zwischenablage.
Oder Beispielsweise eine andere Lösung:
Timer läuft ab, Formular über javascript automatisch abgeschickt (submit 
similiert), d.h. eingegebener Text (bis auf wenige Zeichen, nämlich die, 
die nach Ablauf des Timers noch weiter eingetippt wurden, weil man den 
Timer nicht mitbekommen hat) wird durch den Host gespeichert. Dann 
müsste man wieder edit aufrufen und der Text wäre noch da. Erneut 
anmelden müsste man sich nicht, da noch innerhalb der 10 Minuten 
geantwortet wurde und somit die Session erhalten bliebe. Weitere 
Verfeinerung: nach dem Sichern automatisches redir auf erneutes Edit 
(das wieder in PHP) und zur Körnung: wiederaufsetzen an der zuletzt 
editierten Stelle.
Das ist jetzt aber erstmal nur ein theoretischer Ansatz, das müsste man 
jetzt erstmal prüfen.

Mehr kann ich Dir im Moment aus Zeitgründen aber leider nicht bieten.

Gruß

Knut

Peter Lutz schrieb:
> Hallo,
> 
> ich habe mein wiki bei einem Hoster, der eine ziemlich kurze
> Sessiondauer (10min) gesetzt hat, und würde gerne wissen wie man das am
> besten umgehen kann (außer einem Hosterwechsel...). Der Effekt ist, daß
> man seine editierten Texte verliert, wenn man zu lange zum Editieren
> braucht. Und 10min sind schnell um.
> 
> Zusätzlich sind einige Befehle deaktiviert, z.B. ini_get.
> 
> Meine erste "Lösung" war, mir in die Editform, direkt über den
> Savebutton, einen kleinen Merktext zu schreiben, damit ich STRG+A und
> STRG+C drücke. Wenn ich mich dann neu einlogge (UserAuth2), hab ich den
> Text noch auf meinem Rechner.
> 
> Meine momentane Idee ist es, diese "Lösung" zu verbessern und sowas wie
> einen Timer einzubauen der einen informiert wenn man (wahrscheinlich)
> ausgeloggt ist und/oder die Zeit seit dem letzten Klick zählt und
> ausgibt. 
> 
> Am einfachsten scheint man sowas mit javascript zu lösen, allerdings
> scheue ich mich, ein js einzubauen (was wohl auch daran liegt, daß ich
> das noch nie getan habe).
> 
> In der php-Dokumentation habe ich die 'register_tick_function'
> gefunden, mit der man, vermute ich, sowas via php-code lösen könnte.
> Wie der Code aussehen müßte ist mir natürlich unklar (und deswegen
> schreibe ich ja hier...).
> 
> Oder kann man das Problem mit MySQL umgehen bzw. dort automatisch
> zwischenspeichern? Oder sonstwie andere Lösungen?
> 
> Würde mich freuen, wenn jemandem was einfällt.
> 
> Grüße,
> peter
> 
> PS: Liste der deaktivierten Funktionen meines Hosters
> Warning: ini_get, ini_alter, ini_restore, ini_set, getrusage,
> get_current_user, set_time_limit, getmyuid, getmypid, dl, leak, listen, tmpfile, link, mb_send_mail() has been disabled for security reasons in <filename.php> on line xxx
> 
> _______________________________________________
> pmwiki-users-de mailing list
> pmwiki-users-de at pmichaud.com
> http://www.pmichaud.com/mailman/listinfo/pmwiki-users-de
> 
>