intro wiki download guestbook contact

=WebTek::Session=

====Beschreibung
Verwaltet eine Session in WebTek. Eine Session wird identifiziert durch einen 32 Bit langen HEX Code, welcher beim Klienten, in einem Cookie mit dem Namen session, gespeichert wird. Wenn für einen Request keine Session gefunden wurde, dann wird automatisch eine neue Session erstellt und dem Klienten übermittelt. Serverseitig wird die Session in der Datenbank gespeichert und die dafür notwendige Tabelle ist in lib/mysql.sql definiert.\\
Jedes Session Objekt ist an eine IP Adresse gebunden, und wenn es länger als eine Stunde (die zeit kann man im webtek.config unter session-expiry-time ändern) nicht abgefragt wurde, wird sie ungültig.

====Notification Center
Die Session registriert sich für die Notification request-has-ended. Hier wird dann die methode save aufgerufen, welche die Session in die Datenbank speichert.

====Exportierte Methoden
* session liefert das aktuelle Session Objekt.

====Methoden
* create_new_for_ip($ip_address) erstellt ein neues Session Objekt mit der angegeben IP Adresse. Des weiteren wird in den Response auch das Session Cookie geschrieben.
* init() ladet die aktuelle Session aus der Datenbank, oder erstellt eine neue Session mit create_new_for_ip.
* is_expired() liefert 0 oder 1, jenachdem ob die Session noch gültig ist.
* expand() verlängert die Gültigkeit des Session Objekts. Die Länge wird in der webtek.config mit dem key session-expiry-time definiert.
* user($user) setzt oder liefert das User Objekt welches mit der Session verbunden ist.
* user_macro(%params) diese Funktion wird aufgerufen wenn man irgendwo in einem Template <% session.user %> aufruft. Standardmäßig wird einfach nur der Nickname zurück gegeben, es können aber auch mit dem Paramter property andere Eigenschaften des Users angezeigt werden.
* data() retourniert eine Hash- Reference welche man mit belibigen Werten füttern kann.
* save() speichert die Session in die Datenbank.