baseportal
Suche: 
 Forum   Start 

Cookies

Nur Miete / Lizenz 
Verstecken Inhalt
"Cookies" sind Texte und Werte die Sie auf dem Rechner eines Besuchers Ihrer Seiten hinterlassen können und beim nächsten Aufruf wieder abrufen können. Da damit zumindest teilweise das Surfverhalten eines Nutzers zu verfolgen ist (und dies von Bannervermarkter-Firmen wie doubleclick auch fleissig gemacht wird), sind Cookies ein wenig in Verruf geraten. Eine Sicherheitslücke stellen Cookies aber nicht dar und so muss letztendlich jeder selbst entscheiden, ob er Cookies auf seinen Seiten einsetzt oder nicht...

Cookies abrufen

baseportal stellt Cookies ohne weiteres Zutun im Hash %_cookies bereit:

$_cookies{Name}

gibt den Wert des Cookies Name zurück.

Cookies setzen

Gesetzt werden Cookies durch den Befehl set_cookies:

Definition:

set_cookies "[*]Cookie-Name=Wert[; expires=rfc-date]", ...;

Beispiele:

set_cookies "Name=Hans", "Alter=27";

setzt das Cookie "Name" auf "Hans" und "Alter" auf "27".

Lebensdauer festlegen

Die Cookies haben eine unendliche Lebensdauer (Um genau zu sein: Bis zum Jahr 2030; falls sie nicht vorher gelöscht werden). Um ein Cookie nur solange zu speichern, solange der Nutzer den Browser geöffnet hat (=eine "Sitzung", engl. Session) muss man einen Stern vor den Cookie-Namen setzen:

set_cookies "*einkaufswagen=2472";

setzt das Cookie "einkaufswagen" auf "2472". Beim Schliessen des Browsers wird es automatisch gelöscht.

In ganz seltenen Fällen möchten Sie einem Cookie eine bestimmte Lebensdauer geben: Hierzu müssen Sie das Datum hintan stellen:

set_cookies "Sonderangebot_gekauft=0; expires=Mon, 24 Dec 2001 18:00:00 GMT";

setzt das Cookie "Sonderangebot_gekauft" auf "0". Ab dem 24.Dezember.2001 um 18:00 Uhr wird es automatisch vom Browser des Nutzers gelöscht. Das Datum muss in einem genau bestimmten Format vorliegen, sonst funktioniert es nicht. baseportal stellt dieses Format über die Datumsfunktion und den Formatnamen "rfc" bereit. Der obige Aufruf könnte also auch so aussehen:

set_cookies "Sonderangebot_gekauft=0; expires=".datum("24.12.2001,18:00","rfc");

baseportal wandelt das angegebene Datum automatisch in das richtige Format.

Weitere Parameter mitgeben

Neben der Lebensdauer können Cookies beliebige weitere Parameter mitgegeben werden. Wie beim obigen expires müssen diese mit Strickpunkt ; an die Cookie-Zuweisung angehängt werden. Um z.B. ein Cookie nicht nur bei der aufrufenden Seite verfügbar zu machen, benötigt man den Parameter "path":

set_cookies "Nutzer=hans; path=/";

Die genaue Bedeutung aller Parameter erfahren Sie in der RFC2965. (english)

Cookies löschen

Um ein Cookie zu löschen, muss einfach der Cookie-Name ohne Wert angegeben werden:

set_cookies "Besucher=";

löscht das Cookie "Besucher".


Komplettes Beispiel

Das folgende Beispiel zeigt einen kleinen "Besucher-Zähler". Es erkennt, wenn ein Nutzer noch nie auf der Seite war und verlangt die Eingabe seines Namens. Dieser wird als Cookie auf seinem Rechner gespeichert, ebenso das Cookie "Besuche" das die Anzahl der Besuche mitzählt.

Um das Ganze zu testen kann man die Cookies auch wieder löschen lassen.

<perl>

if($cmd eq "clear")
{
    out "Cookies sind jetzt gel&ouml;scht...";
    set_cookies "Name=", "Besuche=";
    out '<p><a href="baseportal.pl?htx='.$htx.'">Seite erneut aufrufen</a>';
} else
{
    if($Name)
    {
        out "Willkommen $Name!";
        set_cookies "Name=$Name", "*Besuche=1";

        out '<p><a href="baseportal.pl?htx='.$htx.'">Seite erneut aufrufen</a>';
    } elsif($_cookies{Name})
    {
        $Besuche=$_cookies{Besuche}+1;
        out "Hallo $_cookies{Name}, dies ist Dein $Besuche. Besuch!";
        set_cookies "*Besuche=$Besuche";

        out '<p><a href="baseportal.pl?htx='.$htx.'">Seite erneut aufrufen</a>';
        out ' - <a href="baseportal.pl?htx='.$htx.'&cmd=clear">Cookies l&ouml;schen</a>';
    } else
    {
      out <<EOF;
Herzlich Willkommen! Dies ist Dein erster Besuch. Wie heisst Du?<p>
<form action="baseportal.pl?htx=/$htx" method="post" enctype="multipart/form-data">
<input type="hidden" name="htx=" value="$htx">
Name: <input type="text" name="Name="> <input type="submit" value="Abschicken">
</form>
EOF
    }
}

</perl>

Letzte Änderung am 23.4.2009, 19:28 - Stichworte: Cookies, %_cookies, set_cookies, expires, rfc

c - o - + 
© baseportal GmbH. Alle Rechte vorbehalten.


powered in 0.09s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!