Session/iframe
Vedlægger her koden på to filer. Den første bruger jeg når jeg opretter en vare. Den næste er selve kurven. Planen er jo så at hver gang man opretter en vare bliver den smidt ned i kurven.Session virker også fint, så længe jeg kører rå htm-filer.
Nu har jeg på en anden server lavet et menusystem (ASP). Derfra henter jeg via IFRAME mine htm-filer.
Nu er det så at det går galt.
Hvis jeg starter op via menusystemet (iframe) gemmer den ikke varerne i kurven.
Hvis jeg starter op uden iframe virker det fint. Hvis jeg derefter går tilbage til IFRAME virker de næste varer også fint. Men jeg kan jo ikke bede kunderne starte op uden menusystemet ved den første vare og derefter kan de hoppe tilbage til systemet igen.
Er IFRAME en dårlig løsning til session.
Her er et udsnit af filerne
Kurv:
function getCookie(name){
var cname = name + "=";
var dc = document.cookie;
if (dc.length > 0) {
begin = dc.indexOf(cname);
if (begin != -1) {
begin += cname.length;
end = dc.indexOf(";", begin);
if (end == -1){
end = dc.length;
}
return unescape(dc.substring(begin, end));
}
}
return null;
}
function setCookie(name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
((path == null) ? "" : "; path=" + path) +
((domain == null) ? "" : "; domain=" + domain) +
((secure == null) ? "" : "; secure");
}
function delCookie (name,path,domain) {
if (getCookie(name)) {
document.cookie = name + "=" +
((path == null) ? "" : "; path=" + path) +
((domain == null) ? "" : "; domain=" + domain) +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
function goHelpWindow(){
url_string="Kurvhjaelp.htm"
GoHjaelp=window.open(url_string,"Select","toolbar=0,directories=no,status=no,resizable=yes,scrollbars=yes,width=230,height=500")
}
//sæt expiration date 14 dage frem (1000ms * 60s * 60min * 24t * 14dg)
var expiration = new Date();
expiration.setTime(expiration.getTime() + 1209600000);
//Hent Cookie og åben vindue hvis 'Hjælp' ikke er set før.
var hent = getCookie('SetTilbudHjaelpFoer');
if (hent == null){
goHelpWindow();
setCookie('SetTilbudHjaelpFoer', true, expiration);
}
Vare:
function getCookieVal (offset){
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1){
endstr = document.cookie.length;
}
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie(name){
var arg = name + "="
var alen = arg.length
var clen = document.cookie.length
var i = 0
while (i < clen){
var j = i + alen
if (document.cookie.substring(i,j) == arg){
return getCookieVal(j)
}
i = document.cookie.indexOf(" ", i) + 1
if (i == 0) break
}
return null
}
