[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
>
>