Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Mensaje iniciado por: MrDev en 22 Marzo 2016, 16:34 PM

Título: Problema con las cookies
Publicado por: MrDev en 22 Marzo 2016, 16:34 PM
Estoy haciendo una prueba de formulario y cookies, mi objetivo es guardar las cookies en valores y mostrarlos luego, pero no me hace eso sino que me muestra "nomre=paco,nombre=paco,nombre=paco" en vez de "nombre=paco,apellido=perez,edad=30", pero si hago el alert de document.cookie si me lo muestra bien, las funciones para tratar los datos son estas:

Código (javascript) [Seleccionar]
function cookiesSaved(){
    var valor;
   
    //Añadir datos a las cookies
    valor = document.getElementById("nombre").value;
    document.cookie = "Nombre=" + valor;
   
    valor = document.getElementById("apellido").value;
    document.cookie = "Apellido=" + valor;
   
    valor = document.getElementById("edad").value;
    document.cookie = "Edad=" + valor;
}

function getValue(word){
    var inicio;
    var final;
    var dato;
    var cadena = document.cookie;
   
    //coger el valor inicial de la cadena
    inicio = cadena.indexOf(word,0);
   
    //coger la longitud de la cadena
    inicio = inicio.length;
   
    //coger la cadena completa
    final = cadena.indexOf(";",inicio);
   
    dato = cadena.substring(inicio,final);
   
    return dato;
}

function cookieLoad(){
    var nombre;
    var apellido;
    var edad;
    var cadena = document.cookie;
   
    //asignar los datos a la variable
    nombre = getValue("Nombre=");
    apellido = getValue("Apellido=");
    edad = getValue("Edad=");
   
    //asignar valor a variable
    cadenaHTML = nombre + "," + apellido + "," + edad;
   
    //introducir codigo en el id usuario
    document.getElementById("usuario").innerHTML = cadenaHTML;
    alert(cadena);
}
Título: Re: Problema con las cookies
Publicado por: Gallu en 11 Abril 2016, 17:23 PM
Hola ,

No sé si lograste solucionar el problema por tu cuenta, pero el error está en el método getValue, en la linea

Código (javascript) [Seleccionar]

inicio = inicio.length;


La función indexOf te devuelve un número, no puedes hacer un length del número, de allí el error.

Si estás usando Chrome puedes usar las herramientas de desarrollador para debuggar el javascript de tus aplicaciones, te ayudará a solucionar errores como este.

http://blog.hostdime.com.co/como-utilizar-las-herramientas-para-desarrolladores-de-chrome/


Saludos