Cookie abfragen für Aktion

Für verschiedene Aktionen im Shop, benötige ich ein Pop-Up Fenster, welches ich durch ein ganz einfaches Java-Script gelöst habe.
Nun möchte ich das Vorhandensein eines Cookies abfragen … und wenn das Cookie nicht vorhanden ist, soll das PopUp als Info angezeigt werden, bei vorhandenem Cookie soll garnichts passieren.

Das Cookie wird beim Aufruf bestimmter Seiten im Shop gesetzt … und das funktioniert ohne Probleme. Nur beim Abfragen des Cookies komme ich nicht weiter …

Das Cookie habe ich in einer Datei gesetzt mit:

<script type="text/javascript">
var ablauf = new Date();
var indreissigTagen = ablauf.getTime() + (30 * 24 * 60 * 60 * 1000);
ablauf.setTime(indreissigTagen);
document.cookie = "Info_PopUp=MeinShop_Aktion; expires=" + ablauf.toGMTString();
</script>

Jetzt möchte ich in der _header.tpl des Shops prüfen, ob das Cookie vorhanden ist … dann soll nichts passieren … und wenn das Cookie nicht vorhanden ist soll ein PopUp angezeigt werden.

Um dies zu testen habe ich in der _header.tpl direkt vor folgendes eingefügt:

<script type="text/javascript">
function checkCookie(){
   if (!getCookie("Info_PopUp"))
      alert("Info PopUp vorhanden");
   else{
      alert("Info PopUp nichtvorhanden");
   }
}
</script>

Allerdings passiert mit dem Script garnichts …

Was mache ich falsch?

Wenn ich z.B.

<script type="text/javascript">
alert(document.cookie);
</script>

… einfüge, wird mein Cookie angezeigt.

Wer kann mir bei der Abfrage helfen?

Zunächst mal sollte man besser den Cookie in php setzen, aber das mal am Rande.
Dann wird der Cookie falsch gesetzt.
Hier mal eine setCookie Funktion die es richtig macht eingebaut:

[QUOTE=HeidelBÄR;72124]

<script type="text/javascript">
setCookie("Info_PopUp,"MeinShop_Aktion", 30);// in 30 Tagen
function setCookie(c_name,value,exdays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}
</script>

[/QUOTE]

[QUOTE=HeidelBÄR;72124]




[/QUOTE]

[QUOTE=holgt;72126]Hier mal eine setCookie Funktion die es richtig macht eingebaut:[/QUOTE]

Hallo Holgt,

erstmal Danke für Die Info zum setzen des Cookies … werde das später gleich mal ausprobieren.

Frage ist noch, wie ich es mit der Abfrage handhaben kann … oder funktioniert die Abfrage:

<script type="text/javascript">
function checkCookie(){
   if (!getCookie("Info_PopUp"))
      alert("Info PopUp vorhanden");
   else{
      alert("Info PopUp nichtvorhanden");
   }
}
</script>

wenn ich den Cookie wie oben beschrieben setze?

[QUOTE=HeidelBÄR;72160]Hallo Holgt,

<script type="text/javascript">
function checkCookie(){
   if (!getCookie("Info_PopUp"))
      alert("Info PopUp vorhanden");
   else{
      alert("Info PopUp nichtvorhanden");
   }
}
</script>

Hmm ahja also habe es jetzt nicht ausprobiert aber schaut schon mal nicht ganz sauber aus und kann man auch universeller handhaben, ausserdem fehlt ein getCookie …, so sollte es gehen:


function getCookie(c_name) {
    var i,x,y,ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}

function checkCookie(c_name) {
    var mycookie = getCookie(c_name);
    if (mycookie != null && mycookie != "") {
        return true;
    }
    else {
        false;
    }
}


und hier jetzt die Abfrage mit alert als Testausgabe


if (getCookie('Info_PopUp')){
    alert('Info_PopUp vorhanden');
}
else{
    alert('Info_PopUp vorhanden');
}