Newsgroup: it.comp.lang.javascript
Titolo: I cookie in Javascript

Ho due domande sui cookie.
1- Se creo un cookie in una pagina del mio sito, posso caricarlo e
modificarlo anche da altre pagine dello stesso sito?
Siccome non sapevo se era fattibile ho realizzato questo script che e'
posto nel file cookie.html. Questa pagina gestisce il cookie.
Passando il parametro 0 preleva i dati dal cookie, passando il
parametro 1 salva i dati dal cookie (esempio: la pagina index.html
chiama il cookie per prelevare i dati:
"
http://www.miosito.it/page/cookie.html?dato=a;dato2=b;link=http://www.miosito.it/page/index.html;param=0
")
Tutto funzionava bene finche' improvvisamente non funziona piu' come
dovrebbe (uso Dreamweaver MX con Opera 7.11). (tra l'altro questo
script e' inserio all'interno del file html e non in un file .js
perche' se lo inserisco in un file .js non funziona ^^;;;
<script language="JavaScript"
src="../program/javascript/cookie.js"></script>)
2- Perche' non funziona lo script (preleva i dati errati)?
Ecco il codice dello script
<script language="JavaScript">
//gestione dei cookie
var szLocation = new String ("
www.miosito.it
");
var szNick = new String ("utente")
var volte, style
function LoadPage () {
	var szPassage = new String (document.location)
	newdate = new Date ()
	var beg, end, page, mod;
 
	if ((szPassage.lastIndexOf ("?nick=") == -1) || 
		(szPassage.lastIndexOf (";page=") == -1) ||
		(szPassage.lastIndexOf (";volte=") == -1) ||
		(szPassage.lastIndexOf (";style=") == -1) ||
		(szPassage.lastIndexOf (";time=") == -1) ||
		(szPassage.lastIndexOf (";") == -1)) { 
		//errori nel link passato alla pagina
		szNick = "utente "
		page = 0
		volte = 0
		style = 0
		mod = 0
		szLocation = "
http://www.miosito.it/page/index.html
"
	}
	else {
		//preleva le informazioni
		//nick
		beg = szPassage.lastIndexOf ("nick=") + 5;
		end = szPassage.lastIndexOf (";page=");
		szNick = szPassage.substring (beg, end);
		//page
		beg = szPassage.lastIndexOf ("page=") + 5;
		end = szPassage.lastIndexOf (";volte=");
		page = szPassage.substring (beg, end);
		//volte
		beg = szPassage.lastIndexOf ("volte=") + 6;
		end = szPassage.lastIndexOf (";style=");
		volte = szPassage.substring (beg, end);
		//style
		beg = szPassage.lastIndexOf ("style=") + 6;
		end = szPassage.lastIndexOf (";time=");
		style = szPassage.substring (beg, end);
		//mod 
		beg = szPassage.lastIndexOf ("mod=") + 4;
		end = szPassage.lastIndexOf (";");
		mod = szPassage.substring (beg, end);
		//link
		beg = szPassage.lastIndexOf ("link=") + 5;
		end = szPassage.lastIndexOf (";mod") + 1;
		szLocation = szPassage.substring (beg, end);
	}
	if (mod == 0)
		GetCookie ()
	else
		SaveCookie ()
	//ricrea il nuovo link 
	end = szLocation.lastIndexOf ("?nick=") + 6
	szLocation = szLocation.substring (0, end);
	szLocation += szNick + ";page=" + page + ";volte=" + volte +
	    ";style=" + style + ";time=" + newdata.getTime () + ";"
	document.location = szLocation
}
function GetCookie () {
	var szCookiedat = new String (document.cookie)
	var beg, end
 
	alert (document.cookie)
	if (szCookiedat.indexOf("nick=") == -1)
		SaveCookie ()
	else if (szCookiedat.indexOf("nick=#") != -1)
		SaveCookie ()
	else {
		//nick
		beg = szCookiedat.lastIndexOf ("nick=") + 5
		end = szCookiedat.lastIndexOf ("#volte=")
		szNick = szCookiedat.substring (beg, end)
		//volte
		beg = szCookiedat.lastIndexOf ("#volte=") + 7
		end =  szCookiedat.lastIndexOf ("#style=")
		volte = szCookiedat.substring (beg, end)
		//style
		beg = szCookiedat.lastIndexOf ("#style=") + 7
		end = szCookiedat.lenght
		style = szCookiedat.substring (beg, end)
		SaveCookie ()		
	}
}
/*Struttura del cookie
nick=nome#volte=numero#style=numero; expires=data; path= ;
nick: nickname
volte: volte che ha visitato il sito
style: numero che indica lo stile del sito (CSS)*/
function SaveCookie () {
	var szCookie = new String ("0");
	newdata = new Date ()
	newdata.setFullYear(newdata.getFullYear()+1)
	volte++
	if (szNick == "utente") 
		szNick = "utente "
	szCookie = "nick=" + szNick + "#volte=" + volte + "#style=" +
			style + "; expires=" + newdata.toUTCString() +
			 "; path= ;"
	document.cookie = szCookie;
	alert (document.cookie)
	if (document.cookie.indexOf("nick=") == -1)
		alert ("Attenzione! devi abilitare i cookie!"); 
}
</script>
--
Scritto da Gordon
E-mail: 
tbe...@avpu.vg

 modificarlo anche da altre pagine dello stesso sito?
Mi sembra di si, perchè i cookie possono riferirsi all'intero dominio, 
qualora espresso

qualora espresso
e non c'e' alcun parametro da inserie nel cookie?


 e non c'e' alcun parametro da inserie nel cookie?
Mi sembra ci sia il parametro domain da settare.