Condividi:        

Javascript errore lettura cookie

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

Javascript errore lettura cookie

Postdi Zhuco » 15/07/05 18:36

Chi mi dice cosa c'è che non va in questo codice?
Off Line funziona correttamente quando l'ho caricato sul sito mi da errore:

Codice: Seleziona tutto
    function readvalcook()
        {
            var varcook = new Array();
            var var2cook;
            var i;
            varcook = document.cookie.split(";");
            if (varcook[1] != null)
                {
                    for (i=0; i<= varcook.length; i++)
                        {
                            var2cook = varcook[i].split("=");
                            if(var2cook[0] == 'on')
                                {
                                    return (unescape(var2cook[1]));
                                }
                        }
                }
            return ("");
        }

Questo è l'errore riportato da firefox:
Errore: varcook[i] has no properties
Riga: 39
Thanks From .:°J@zZ°:.
Zhuco
Utente Senior
 
Post: 234
Iscritto il: 12/08/02 00:17
Località: Ciociaria

Sponsor
 

Postdi archimede » 16/07/05 07:09

Qual è l'URL?

Alessandro
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi Mone » 17/07/05 16:49

Così ad occhio hai sbagliato il ciclo:

Codice: Seleziona tutto
           for (i=0; i<= varcook.length; i++)
 

infatti, mettiamo che varcook.length valga 1, farà due cicli, ma in realta varcook[1] non esiste, esiste solo varcook[0] quindi questa riga ti da errore:
Codice: Seleziona tutto
 var2cook = varcook[i].split("=");

quando i vale 1 (ovvero varcook.length).

Sostituendo il ciclo così:
Codice: Seleziona tutto
for (i = 0; i < varcook.length; i++)

dovrebbe funzionare.

PS: quando posti un errore con riferimento ad una riga di codice posta anche qual è questa riga, anche se in effetti in questo caso l'unica istruzione che utilizza varcook[i] era facilmente individuabile.
Avatar utente
Mone
Utente Senior
 
Post: 343
Iscritto il: 21/10/03 19:44
Località: Zion

Postdi Mone » 17/07/05 21:26

infatti, mettiamo che varcook.length valga 1, farà due cicli, ma in realta varcook[1] non esiste, esiste solo varcook[0] quindi questa riga ti da errore: etc..

riguardando ho visto che questo fa si che l'unico esempio che ho fatto nn andava bene... :oops: poichè con varcook.length = 1 nn ci sarebbe arrivato al ciclo:
Codice: Seleziona tutto
if (varcook[1] != null)

vabbè erra con varcook.length >= 2

Ciao.
Avatar utente
Mone
Utente Senior
 
Post: 343
Iscritto il: 21/10/03 19:44
Località: Zion

Postdi Zhuco » 18/07/05 17:39

Alla fine ho riscritto il codice da capo, cambiando il nome delle variabili cercando di evitare errori, ed alla fine funziona correttamente...

Per chi ha bisogno di leggere un valore da un cookie questo è un codice funzionante:
Codice: Seleziona tutto
function read_val_cook()
    {
        var cookies = document.cookie.split("; ");
        for (var i = 0; i< cookies.length; i++)
            {
                var cookie = cookies[i].split("=");
                if (cookie[0] == "on")
                    {
                        return (unescape(cookie[1]));
                    }
            }
        return("");
    }

Per utilizzarlo basta cambiare questo valore:
Codice: Seleziona tutto
    cookie[0] == "valore_cercato"


Bye Bye!!!
Thanks From .:°J@zZ°:.
Zhuco
Utente Senior
 
Post: 234
Iscritto il: 12/08/02 00:17
Località: Ciociaria


Torna a Programmazione


Topic correlati a "Javascript errore lettura cookie":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti