cookie und golive
anton
- javascript
hi,
ich hoffe dieses posting ist hier nicht alzu fehlplaziert...
Mein Ziel:
ich möchte ein cookie setzen lassen das eine boolesche info beinhaltet. anschließend soll dieser cookie auf der nächsten seite ausgelesen werden und der wert in der aktion "bedingung" benutzt werden.
Was passiert:
der cookie wird geschrieben, aber beim auslesen wird immer die "false-bedingung" ausgeführt, obwol die variable im cookie auf "true" stehen müsste. nun weis ich nicht ob der cookie nicht richtig geschrieben wird oder nicht richtig gelesen wird.
Meine Vorgehensweise:
hierzu habe ich als "klick-aktionen" erst "variable deklarieren"(name: verbindung / typ: boolesch / cookie: ABC), dann "variable festlegen"(variable: verbindung / wert: true) und dann "coockie schreiben"(Name: ABC / pfad: den ordnerpfad der seite) ausgewählt.
Spielt hier die reihenfolge eine rolle? wenn ja, ist sie richtig?
Auf der Nächsten Seite (wo der cookie gelesen wird) habe ich dann in einer headaktion "variable deklarieren"(variable: verbindung / typ: boolesch / cookie: ABC), "variable initialisieren"(variable: verbindung / wert: true) und dann "cookie lesen"(cookie: ABC) gewählt.
Halihallo anton
ich hoffe dieses posting ist hier nicht alzu fehlplaziert...
Cookies sind immer Willkommen ;-)
Was passiert:
der cookie wird geschrieben, aber beim auslesen wird immer die "false-bedingung" ausgeführt, obwol die variable im cookie auf "true" stehen müsste. nun weis ich nicht ob der cookie nicht richtig geschrieben wird oder nicht richtig gelesen wird.
Ohne Code ist das auch für uns nicht möglich zu wissen.
hierzu habe ich als "klick-aktionen" erst "variable deklarieren"(name: verbindung / typ: boolesch / cookie: ABC), dann "variable festlegen"(variable: verbindung / wert: true) und dann "coockie schreiben"(Name: ABC / pfad: den ordnerpfad der seite) ausgewählt.
Spielt hier die reihenfolge eine rolle? wenn ja, ist sie richtig?
Die Reihenfolge scheint logisch zu sein, aber ich kenne golive nicht. Kannst du also den generierten Code mal posten? - Dann liesse sich das auch von nicht-golive-kennern verifizieren/falsifizieren.
Viele Grüsse
Philipp
Ohne Code ist das auch für uns nicht möglich zu wissen.
Die Reihenfolge scheint logisch zu sein, aber ich kenne golive nicht. Kannst du also den generierten Code mal posten? - Dann liesse sich das auch von nicht-golive-kennern verifizieren/falsifizieren.
So denn...ich poste einfach mal die ganze seite, weil ich da nicht so 100% durchsehe...
Hier kommt jetzt der cookie-schreibende teil...#
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
<meta name="generator" content="Adobe GoLive 6">
<title>Willkommen bei Adobe GoLive 6</title>
<csactions>
<csaction name="BA0BD55B0" class="Declare Variable" type="onevent" val0="verbindung" val1="'GLActionBoolParam'" val2="ABC"></csaction>
<csaction name="BA0BD5721" class="Set Variable" type="onevent" val0="verbindung,true"></csaction>
<csaction name="BA0BD57B2" class="Write Cookie" type="onevent" val0="ABC" val1="10" val2="/cookie-test/" val3="www.fitnessclub-wieland.de" val4="false"></csaction>
</csactions>
<csscriptdict>
<script type="text/javascript"><!--
function CSClickReturn () {
var bAgent = window.navigator.userAgent;
var bAppName = window.navigator.appName;
if ((bAppName.indexOf("Explorer") >= 0) && (bAgent.indexOf("Mozilla/3") >= 0) && (bAgent.indexOf("Mac") >= 0))
return true; // dont follow link
else return false; // dont follow link
}
CSStopExecution=false;
function CSAction(array) {return CSAction2(CSAct, array);}
function CSAction2(fct, array) {
var result;
for (var i=0;i<array.length;i++) {
if(CSStopExecution) return false;
var aa = fct[array[i]];
if (aa == null) return false;
var ta = new Array;
for(var j=1;j<aa.length;j++) {
if((aa[j]!=null)&&(typeof(aa[j])=="object")&&(aa[j].length==2)){
if(aa[j][0]=="VAR"){ta[j]=CSStateArray[aa[j][1]];}
else{if(aa[j][0]=="ACT"){ta[j]=CSAction(new Array(new String(aa[j][1])));}
else ta[j]=aa[j];}
} else ta[j]=aa[j];
}
result=aa0;
}
return result;
}
CSAct = new Object;
CSStateArray = new Object;
CSCookieArray = new Object;
CSCookieValArray = new Object;
function CSWriteCookie(action) {
var name = "DFT" + action[1];
var hrs = action[2];
var path = action[3];
var domain = action[4];
var secure = action[5];
var exp = new Date((new Date()).getTime() + hrs * 3600000);
var cookieVal = "";
for(var prop in CSCookieArray) {
if(("DFT" + CSCookieArray[prop]) == name) {
if(cookieVal != "") cookieVal += "&";
cookieVal += prop + ":" + escape(CSStateArray[prop]);
}
}
if(hrs != 0)
cookieVal += "; expires=" + exp.toGMTString();
if(path != "")
cookieVal += "; path=" + path;
if(domain != "")
cookieVal += "; domain=" + domain;
if(secure == true)
cookieVal += "; secure";
document.cookie = name + '=' + cookieVal;
}
function CSReadCookie(action) {
var name = "DFT" + action[1];
var cookies = document.cookie;
if(cookies == "") return;
var start = cookies.indexOf(name);
if(start == -1) return;
start += name.length + 1;
var end = cookies.indexOf(";", start);
if(end == -1) end = cookies.length;
var cookieVal = cookies.substring(start, end);
var arr = cookieVal.split('&');
for(var i = 0; i < arr.length; i++) {
var a = arr[i].split(':');
CSStateArray[a[0]] = unescape(a[1]);
}
}
function CSDefineState(action) {
CSCookieArray[action[1]] = action[3];
}
function CSSetState(action) {
CSStateArray[action[1]] = action[2];
}
function CSInitState(action) {
if(typeof(CSStateArray[action[1]]) == "undefined")
CSStateArray[action[1]] = action[2];
}
function CSCheckState(action) {
var obj1 = CSStateArray[action[1]];
var obj2 = action[2];
if(typeof(obj1) == "object") {
for(var i=0;i<obj1.length;i++) {
if(obj1[i] != obj2[i])
return false;
}
return true;
}
var res;
var op = action[3];
if(op == "==") res = (CSStateArray[action[1]] == action[2]);
else if(op == "!=") res = (CSStateArray[action[1]] != action[2]);
else if(op == ">" ) res = (CSStateArray[action[1]] > action[2]);
else if(op == ">=") res = (CSStateArray[action[1]] >= action[2]);
else if(op == "<" ) res = (CSStateArray[action[1]] < action[2]);
else if(op == "<=") res = (CSStateArray[action[1]] <= action[2]);
return res;
}
// --></script>
</csscriptdict>
<csactiondict>
<script type="text/javascript"><!--
CSAct[/*CMP*/ 'BA0BD55B0'] = new Array(CSDefineState,'verbindung','GLActionBoolParam','ABC');
CSAct[/*CMP*/ 'BA0BD5721'] = new Array(CSSetState,'verbindung',true);
CSAct[/*CMP*/ 'BA0BD57B2'] = new Array(CSWriteCookie,'ABC',10,'/cookie-test/','www.fitnessclub-wieland.de',false);
// --></script>
</csactiondict>
</head>
<body bgcolor="#ffffff">
<p><a onclick="CSAction(new Array(/*CMP*/'BA0BD55B0',/*CMP*/'BA0BD5721',/*CMP*/'BA0BD57B2'));return CSClickReturn();" href="#" csclick="BA0BD55B0,BA0BD5721,BA0BD57B2">dsl</a></p>
</body>
</html>
so, dein cookie-lesenden teil poste ich seperat...
ich hoffe ihr seht da durch... :)
so...jetzt der cookie-lesende teil mit der bedingungs-weiche...
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"> <meta name="generator" content="Adobe GoLive 6"> <title>Willkommen bei Adobe GoLive 6</title> <csactionitem name="BA0BD67D3"></csactionitem> <csactionitem name="BA0BD6C25"></csactionitem> <csactionitem name="BA0BD6D86"></csactionitem> <csactions> <csaction name="BA0BD67D3" class="Declare Variable" type="onload" val0="verbindung" val1="'GLActionBoolParam'" val2="ABC"></csaction> <csaction name="BA0BD6C25" class="Read Cookie" type="onload" val0="ABC"></csaction> <csaction name="BA0BD6D86" class="Condition" type="onload" val0="BA0BD6DB7,BA0BD6E68,BA0BD6F29"></csaction> <csaction name="BA0BD6DB7" class="Check State" type="onevent" val0="verbindung,true" val1="'=='"></csaction> <csaction name="BA0BD6E68" class="Goto Link" type="onevent" val0="dsl.html" val1="" urlparams="1"></csaction> <csaction name="BA0BD6F29" class="Goto Link" type="onevent" val0="modem.html" val1="" urlparams="1"></csaction> </csactions> <csscriptdict> <script type="text/javascript"><!-- CSInit = new Array; function CSScriptInit() { if(typeof(skipPage) != "undefined") { if(skipPage) return; } idxArray = new Array; for(var i=0;i<CSInit.length;i++) idxArray[i] = i; CSAction2(CSInit, idxArray);} CSStopExecution=false; function CSAction(array) {return CSAction2(CSAct, array);} function CSAction2(fct, array) { var result; for (var i=0;i<array.length;i++) { if(CSStopExecution) return false; var aa = fct[array[i]]; if (aa == null) return false; var ta = new Array; for(var j=1;j<aa.length;j++) { if((aa[j]!=null)&&(typeof(aa[j])=="object")&&(aa[j].length==2)){ if(aa[j][0]=="VAR"){ta[j]=CSStateArray[aa[j][1]];} else{if(aa[j][0]=="ACT"){ta[j]=CSAction(new Array(new String(aa[j][1])));} else ta[j]=aa[j];} } else ta[j]=aa[j]; } result=aa0; } return result; } CSAct = new Object; CSStateArray = new Object; CSCookieArray = new Object; CSCookieValArray = new Object; function CSWriteCookie(action) { var name = "DFT" + action[1]; var hrs = action[2]; var path = action[3]; var domain = action[4]; var secure = action[5]; var exp = new Date((new Date()).getTime() + hrs * 3600000); var cookieVal = ""; for(var prop in CSCookieArray) { if(("DFT" + CSCookieArray[prop]) == name) { if(cookieVal != "") cookieVal += "&"; cookieVal += prop + ":" + escape(CSStateArray[prop]); } } if(hrs != 0) cookieVal += "; expires=" + exp.toGMTString(); if(path != "") cookieVal += "; path=" + path; if(domain != "") cookieVal += "; domain=" + domain; if(secure == true) cookieVal += "; secure"; document.cookie = name + '=' + cookieVal; } function CSReadCookie(action) { var name = "DFT" + action[1]; var cookies = document.cookie; if(cookies == "") return; var start = cookies.indexOf(name); if(start == -1) return; start += name.length + 1; var end = cookies.indexOf(";", start); if(end == -1) end = cookies.length; var cookieVal = cookies.substring(start, end); var arr = cookieVal.split('&'); for(var i = 0; i < arr.length; i++) { var a = arr[i].split(':'); CSStateArray[a[0]] = unescape(a[1]); } } function CSDefineState(action) { CSCookieArray[action[1]] = action[3]; } function CSSetState(action) { CSStateArray[action[1]] = action[2]; } function CSInitState(action) { if(typeof(CSStateArray[action[1]]) == "undefined") CSStateArray[action[1]] = action[2]; } function CSCheckState(action) { var obj1 = CSStateArray[action[1]]; var obj2 = action[2]; if(typeof(obj1) == "object") { for(var i=0;i<obj1.length;i++) { if(obj1[i] != obj2[i]) return false; } return true; } var res; var op = action[3]; if(op == "==") res = (CSStateArray[action[1]] == action[2]); else if(op == "!=") res = (CSStateArray[action[1]] != action[2]); else if(op == ">" ) res = (CSStateArray[action[1]] > action[2]); else if(op == ">=") res = (CSStateArray[action[1]] >= action[2]); else if(op == "<" ) res = (CSStateArray[action[1]] < action[2]); else if(op == "<=") res = (CSStateArray[action[1]] <= action[2]); return res; } CSAg = window.navigator.userAgent; CSBVers = parseInt(CSAg.charAt(CSAg.indexOf("/")+1),10); CSIsW3CDOM = ((document.getElementById) && !(IsIE()&&CSBVers<6)) ? true : false; function IsIE() { return CSAg.indexOf("MSIE") > 0;} function CSIEStyl(s) { return document.all.tags("div")[s].style; } function CSNSStyl(s) { if (CSIsW3CDOM) return document.getElementById(s).style; else return CSFindElement(s,0); } CSIImg=false; function CSInitImgID() {if (!CSIImg && document.images) { for (var i=0; i<document.images.length; i++) { if (!document.images[i].id) document.images[i].id=document.images[i].name; } CSIImg = true;}} function CSFindElement(n,ly) { if (CSBVers<4) return document[n]; if (CSIsW3CDOM) {CSInitImgID();return(document.getElementById(n));} var curDoc = ly?ly.document:document; var elem = curDoc[n]; if (!elem) {for (var i=0;i<curDoc.layers.length;i++) {elem=CSFindElement(n,curDoc.layers[i]); if (elem) return elem; }} return elem; } function CSGetImage(n) {if(document.images) {return ((!IsIE()&&CSBVers<5)?CSFindElement(n,0):document.images[n]);} else {return null;}} CSDInit=false; function CSIDOM() { if (CSDInit)return; CSDInit=true; if(document.getElementsByTagName) {var n = document.getElementsByTagName('DIV'); for (var i=0;i<n.length;i++) {CSICSS2Prop(n[i].id);}}} function CSICSS2Prop(id) { var n = document.getElementsByTagName('STYLE');for (var i=0;i<n.length;i++) { var cn = n[i].childNodes; for (var j=0;j<cn.length;j++) { CSSetCSS2Props(CSFetchStyle(cn[j].data, id),id); }}} function CSFetchStyle(sc, id) { var s=sc; while(s.indexOf("#")!=-1) { s=s.substring(s.indexOf("#")+1,sc.length); if (s.substring(0,s.indexOf("{")).toUpperCase().indexOf(id.toUpperCase())!=-1) return(s.substring(s.indexOf("{")+1,s.indexOf("}")));} return ""; } function CSGetStyleAttrValue (si, id) { var s=si.toUpperCase(); var myID=id.toUpperCase()+":"; var id1=s.indexOf(myID); if (id1==-1) return ""; s=s.substring(id1+myID.length+1,si.length); var id2=s.indexOf(";"); return ((id2==-1)?s:s.substring(0,id2)); } function CSSetCSS2Props(si, id) { var el=document.getElementById(id); if (el==null) return; var style=document.getElementById(id).style; if (style) { if (style.left=="") style.left=CSGetStyleAttrValue(si,"left"); if (style.top=="") style.top=CSGetStyleAttrValue(si,"top"); if (style.width=="") style.width=CSGetStyleAttrValue(si,"width"); if (style.height=="") style.height=CSGetStyleAttrValue(si,"height"); if (style.visibility=="") style.visibility=CSGetStyleAttrValue(si,"visibility"); if (style.zIndex=="") style.zIndex=CSGetStyleAttrValue(si,"z-index"); } } function CSSetStylePos(s,d,p) { if (CSIsW3CDOM)d==0?document.getElementById(s).style.left=p+"px":document.getElementById(s).style.top=p+"px"; else if(IsIE())(d==0)?CSIEStyl(s).posLeft=p:CSIEStyl(s).posTop=p; else (d==0)?CSNSStyl(s).left=p:CSNSStyl(s).top=p; } function CSGetStylePos(s,d) { if (CSIsW3CDOM){CSIDOM();return parseInt((d==0)?document.getElementById(s).style.left:document.getElementById(s).style.top);} else if (IsIE()) {CSIEWinInit();return(d==0)?CSIEStyl(s).posLeft:CSIEStyl(s).posTop;} else {return (d==0)?CSNSStyl(s).left:CSNSStyl(s).top;} } CSIEWInit=false; function CSIEWinInit() { if(CSIEWInit==true) return; else CSIEWInit=true; if (IsIE()&&(CSAg.indexOf("Win")!=-1)&&CSBVers==4) { var i=0; var lyr=document.all.tags("div")[i++]; while(lyr) {lyr.style.posLeft=lyr.offsetLeft; lyr.style.posTop=lyr.offsetTop; lyr=document.all.tags("div")[i++];}}} CSLoopIsRunning = false; CSFctArray = new Array; CSTimeoutID = null; function CSLoop() { CSLoopIsRunning = false; for (i=0;i<CSFctArray.length;i++) { var curFct = CSFctArray[i]; if (curFct) { if (curFct.DoFunction(curFct)) { CSLoopIsRunning = true; curFct.counter++; } else CSFctArray[i] = 0; } } if (CSLoopIsRunning) CSTimeoutID = setTimeout("CSLoop()", 1); } function CSStartFunction(fct,data) { if (!CSLoopIsRunning) { CSFctArray = 0; CSFctArray = new Array; } var fctInfo = new Object; fctInfo.DoFunction = fct; fctInfo.counter = 0; fctInfo.data = data; CSFctArray[CSFctArray.length] = fctInfo; if (!CSLoopIsRunning) CSLoop(); } function CSStopFunction(sceneName) { var i; for (i=0;i<CSFctArray.length;i++) { var curFct = CSFctArray[i]; if (curFct){ if (curFct.data.name == sceneName){ CSFctArray[i] = 0; return; } } } } function CSStopComplete() { if (CSTimeoutID == null) return; clearTimeout (CSTimeoutID); CSLoopIsRunning = false; CSTimeoutID = null; } function CSMoveLoop(fInf) { var ticks = 60 * (((new Date()).getTime()) - fInf.data.startTime)/1000; var f = ticks/fInf.data.ticks; if (f < 1) { CSSetStylePos(fInf.data.layer,0,fInf.data.start[0] * (1-f) + fInf.data.end[0] * f); CSSetStylePos(fInf.data.layer,1,fInf.data.start[1] * (1-f) + fInf.data.end[1] * f); return true; } else { CSSetStylePos(fInf.data.layer,0,fInf.data.end[0]); CSSetStylePos(fInf.data.layer,1,fInf.data.end[1]); } return false; } function CSSlideObj (layer,start,end,ticks,startTime) { this.layer=layer;this.start=start;this.end=end;this.ticks=ticks;this.startTime=startTime; } function CSSlideLayer(l,pos,anim,ticks) { var x = pos[0]; var y = pos[1]; if (l == '') return; if (!anim) { CSSetStylePos(l,0,x); CSSetStylePos(l,1,y); } else { var fctData = new CSSlideObj(l,new Array(CSGetStylePos(l,0),CSGetStylePos(l,1)),new Array(x,y),ticks,(new Date()).getTime()); CSStartFunction(CSMoveLoop,fctData); } } function CSConditionAction(action) { if (action[1]) { if (CSAction(new Array(action[1])) == true) { if (action[2]) CSAction(new Array(action[2])); } else if (action[3]) CSAction(new Array(action[3])); } } function CSGotoLink(action) { if (action[2].length) { var hasFrame=false; for(i=0;i<parent.frames.length;i++) { if (parent.frames[i].name==action[2]) { hasFrame=true; break;}} if (hasFrame==true) parent.frames[action[2]].location = action[1]; else window.open (action[1],action[2],""); } else location = action[1]; }
// --></script> </csscriptdict> <csactiondict> <script type="text/javascript"><!-- CSInit[CSInit.length] = new Array(CSDefineState,'verbindung','GLActionBoolParam','ABC'); CSInit[CSInit.length] = new Array(CSReadCookie,'ABC'); CSInit[CSInit.length] = new Array(CSConditionAction,/CMP/ 'BA0BD6DB7', /CMP/ 'BA0BD6E68', /CMP/ 'BA0BD6F29'); CSAct[/CMP/ 'BA0BD6DB7'] = new Array(CSCheckState,'verbindung',true,'=='); CSAct[/CMP/ 'BA0BD6E68'] = new Array(CSGotoLink,/URL/ 'dsl.html',''); CSAct[/CMP/ 'BA0BD6F29'] = new Array(CSGotoLink,/URL/ 'modem.html','');
// --></script> </csactiondict> </head>
<body onload="CSScriptInit();" bgcolor="#ffffff"> <p></p> </body>
</html>
Halihallo anton
"Oh my god, what happend to your eyes, Mr. Weir" ;)
=> Event Horizon; etwas frei formuliert; is mir grad in Sinn gekommen...
Ohne Code ist das auch für uns nicht möglich zu wissen.
Die Reihenfolge scheint logisch zu sein, aber ich kenne golive nicht. Kannst du also den generierten Code mal posten? - Dann liesse sich das auch von nicht-golive-kennern verifizieren/falsifizieren.
So denn...ich poste einfach mal die ganze seite, weil ich da nicht so 100% durchsehe...
[...viel, viel Code...]
so, dein cookie-lesenden teil poste ich seperat...
sonst hättest du wohl sowieso eine Fehlermeldung kassiert ;)
ich hoffe ihr seht da durch... :)
Nicht wirklich ;-(
Das heisst, wenn ich mich zwei Stunden hinter den Code klemme vielleicht, wobei ich das nicht kann und auch nicht will.
Der Code war zwar ziemlich spannend, jetzt weiss ich, dass ich GoLive _nicht_ verwenden werde ;)
Seh ich das richtig, dass mit diesem <csaction> - Zeug irgendwelche Aktionen in der html-Datei gespeichert werden, dass GoLive sich selber beim nächstem mal noch versteht? - Pfui... (für GoLive)
Naja, ich glaube, dass es irgendwo in deinen Dokumenteneinstellungen noch einen kleinen Fehler drinne hat; GoLive wird sein "Quatsch" schon richtig machen (meine Güte langsam artet jeder WYSIWYG-Editor in Winword 2000 aus). Ich konnte bisher noch keinen Fehler entdecken, vielleicht komme ich nochmals kurz dazu; aber ich glaube, dass _du_ wesentlich weniger Aufwand hättest den Fehler zu finden; schau dir doch nochmals alle Einstellungen und das Zeug an; muss ja irgendwo sein; nur leider kann ich dir damit nicht behilflich sein.
Viele Grüsse
Philipp
Nicht wirklich ;-(
Das heisst, wenn ich mich zwei Stunden hinter den Code klemme vielleicht, wobei ich das nicht kann und auch nicht will.
Der Code war zwar ziemlich spannend, jetzt weiss ich, dass ich GoLive _nicht_ verwenden werde ;)
Seh ich das richtig, dass mit diesem <csaction> - Zeug irgendwelche Aktionen in der html-Datei gespeichert werden, dass GoLive sich selber beim nächstem mal noch versteht? - Pfui... (für GoLive)
Naja, ich glaube, dass es irgendwo in deinen Dokumenteneinstellungen noch einen kleinen Fehler drinne hat; GoLive wird sein "Quatsch" schon richtig machen (meine Güte langsam artet jeder WYSIWYG-Editor in Winword 2000 aus). Ich konnte bisher noch keinen Fehler entdecken, vielleicht komme ich nochmals kurz dazu; aber ich glaube, dass _du_ wesentlich weniger Aufwand hättest den Fehler zu finden; schau dir doch nochmals alle Einstellungen und das Zeug an; muss ja irgendwo sein; nur leider kann ich dir damit nicht behilflich sein.Viele Grüsse
Philipp
Viele Dank für deine Bemühungen Phillip... Vielleicht kommt ja doch noch jemand des Weges, der sich auf GoLive versteht...
anton