Ergebnis 1 bis 2 von 2

Thema: cookie object

  1. #1
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913

    cookie object

    Hallo,

    mit diesem Cookie-Object ist es nicht nur möglich normale Strings als Cookie-Wert anzugeben, sondern auch Array- und Object-Werte.
    Sprich ich kann in dem Cookie auch einfache Arrays und Ojecte speichern und auslesen.

    Mit einfachen Arrays und Objetcen meine ich solche:

    myArray = ["a","b","c","d"];
    myObj = {eins:"1",zwei:"2",drei:"3"};


    Code:
    <script>
    var $_COOKIE = {
    
    	set_cookie : function(cName,cValue,cDays) {
    
    		var cookieQuery = new String();
    		var temporArray = new Array();
    
    		var alowedTypes = ["string","array","object","number"];
    		var inComingTyp = String(cValue.constructor);
    
    		inComingTyp = inComingTyp.split(" ")[1];
    		inComingTyp = inComingTyp.split("()").join("").toLowerCase();
    
    		if(alowedTypes.join(",").indexOf(inComingTyp) < 0) return false;
    
    		if(inComingTyp == "array") {
    
    			cValue = "a##"+cValue.join(",");
    
    		} else if(inComingTyp == "object") {
    
    			for(var x in cValue) temporArray[temporArray.length] = x +":"+ cValue[x];
    
    			cValue = "o##"+temporArray.join(",");
    
    		} else {
    
    			cValue = "s##"+cValue;
    		}
    
    		cookieQuery += cName+"=";
    		cookieQuery += escape(cValue)+"; expires=";
    		cookieQuery += new Date(new Date().getTime()+(86400*(cDays*1000))).toLocaleString();
    
    		window.document.cookie = cookieQuery;
    	},
    
    	read_cookie : function(cName) {
    
    		var cookies = document.cookie.split(";");
    
    		for(var x=0; x<cookies.length; x++) {
    
    			var cookie = cookies[x].split("=");
    
    			if(cookie[0] == cName) {
    
    				var locaType = String(unescape(cookie[1])).split("##");
    
    				if(locaType[0] == "a") {
    
    					return locaType[1].split(",");
    
    				} else if(locaType[0] == "o") {
    
    					var tmpArr = locaType[1].split(",");
    
    					for(var values='',tmpObj={},x=0;x<tmpArr.length;x++) {
    
    						values = tmpArr[x].split(":");
    
    						tmpObj[values[0]] = values[1];
    					}
    
    					return tmpObj;
    
    				} else {
    
    					return locaType[1];
    				}
    			}
    		}
    
    		return false;
    	},
    
    	delete_cookie : function(cName) {
    
    		this.set_cookie(cName,"",-99999999);
    	}
    };
    
    
    
    
    // setzen des cookies
    // name: "jsweltforum"
    // wert: "hallo forumteam"
    // haltbarkeitszeit: 1 tag
    //
    $_COOKIE.set_cookie("jsweltforum","hallo forumteam",1);
    
    
    // lesen des cookies
    // angabe des cookienamens "jsweltforum"
    //
    meinCookie = $_COOKIE.read_cookie("jsweltforum");
    
    alert(meinCookie) // ausgabe des wertes "hallo forumteam"
    
    // löschen des cookies
    // angabe des cookienamens "jsweltforum"
    //
    $_COOKIE.delete_cookie("jsweltforum");
    
    
    
    
    
    // setzen des cookies
    // name: "jsweltforum"
    // wert: ["a","b","c","d"]
    // haltbarkeitszeit: 1 tag
    //
    $_COOKIE.set_cookie("jsweltforum",["a","b","c","d"],1);
    
    
    // lesen des cookies
    // angabe des cookienamens "jsweltforum"
    //
    meinCookie = $_COOKIE.read_cookie("jsweltforum");
    
    alert(meinCookie) // ausgabe des arrays
    
    for(x=0;x<meinCookie.length;x++) alert(meinCookie[x]);
    
    
    // löschen des cookies
    // angabe des cookienamens "jsweltforum"
    //
    $_COOKIE.delete_cookie("jsweltforum");
    
    
    
    
    
    
    // setzen des cookies
    // name: "jsweltforum"
    // wert: {eins:"1",zwei:"2",drei:"3"}
    // haltbarkeitszeit: 1 tag
    //
    $_COOKIE.set_cookie("jsweltforum",{eins:"1",zwei:"2",drei:"3"},1);
    
    
    // lesen des cookies
    // angabe des cookienamens "jsweltforum"
    //
    meinCookie = $_COOKIE.read_cookie("jsweltforum");
    
    // ausgabe des objectes
    for(x in meinCookie) alert("assoc = "+x+" || wert = "+meinCookie[x]);
    
    
    // löschen des cookies
    // angabe des cookienamens "jsweltforum"
    //
    $_COOKIE.delete_cookie("jsweltforum");
    </script>
    wie im diesem beispiel zusehen kann man damit einige sachen ermöglichen die sonst umständlichen wären bei einer normalen cookie verwendung.
    http://www.build.more-style.de/cookie/

    und zum downloaden
    Angehängte Dateien Angehängte Dateien
    Geändert von womstar (17-04-2004 um 12:24 Uhr)

  2. #2
    Avatar von .marc
    .marc ist offline Lebende Foren-Legende
    registriert
    26-12-2002
    Ort
    Schweiz / Biel
    Beiträge
    1.589
    auch was zu dem Thema http://web2.3rdtime.de/cgi-bin/viewc...ype=text/plain

    [edit /] ups erst jetzt gemerkt wegen dem neuen Forum ansonsten hät ich wohl nicht gepostet

    Das Script kann auch verschachtelte Objekte verarbeiten und die Daten werden direkt als JS Code gespeichert.
    Geändert von .marc (17-04-2004 um 13:36 Uhr)
    Shit doesn't happen, it's produced by an asshole.
    brain-dump.org || Marc Tanner's web log

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •