ivars91 Posted July 14, 2014 Share Posted July 14, 2014 (edited) Siempre aparece el mismo error: 1. Código inválido. pd: los campos están bien puestos. Gracias Edited July 14, 2014 by ivars91 (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted July 14, 2014 Share Posted July 14, 2014 - Que version de prestashop utilizás ¿?. - Utilizas el tema default ¿?, si no es asi prueba con el tema defult a ver si continua el error Link to comment Share on other sites More sharing options...
ivars91 Posted July 14, 2014 Author Share Posted July 14, 2014 Utilizo la 1.5.6.1 con un theme que no es el default. - Que version de prestashop utilizás ¿?. - Utilizas el tema default ¿?, si no es asi prueba con el tema defult a ver si continua el error Link to comment Share on other sites More sharing options...
ventura Posted July 14, 2014 Share Posted July 14, 2014 Prueba con el tema default para ver si es un problema de la plantilla que estás utilizando Link to comment Share on other sites More sharing options...
ivars91 Posted July 16, 2014 Author Share Posted July 16, 2014 Prueba con el tema default para ver si es un problema de la plantilla que estás utilizando Hola Ventura, gracias por tu ayuda, he estado intentando cambiar a default (en la copia que tengo de la web en local) y me da mil problemas... Hay otra manera de comprobarlo que no sea cambiando la plantilla? Gracias de nuevo Link to comment Share on other sites More sharing options...
tamu secreto Posted July 17, 2014 Share Posted July 17, 2014 Habria que ver que formato esta enviando para el zip code el formulario. en teoria el controlador es el archivo ubicado controller/AddressController.php alli debe estar algo asi: !Validate::isPostCode($ACA-VARIABLE-ZIP-CODE)) $this->errors[] = Tools::displayError('ACA MENSAJE A MOSTRAR EN IDIOMAS') O sea que la classe validate.php valida el parametro enviado con la funcion isPostCode habria que ver que espera recibir y que se esta enviando, puede validar con otra funcion por ejemplo revisar que sea un string y limpiar caracteres esepeciales obivio con la classe Tools.php saludos Link to comment Share on other sites More sharing options...
ivars91 Posted July 17, 2014 Author Share Posted July 17, 2014 Gracias por la ayuda Tamu, Creo que el problema no viene del Zip Code, porque en ese caso el mensaje de error sería "El código postal invalido". El "Código invalido" viene de aquí creo: // Check page token if ($this->context->customer->isLogged() && !$this->isTokenValid()) $this->errors[] = Tools::displayError('Invalid token.'); ¿Puede ser? Lo que no se muy bien este if que comprueba realmente... Habria que ver que formato esta enviando para el zip code el formulario. en teoria el controlador es el archivo ubicado controller/AddressController.php alli debe estar algo asi: !Validate::isPostCode($ACA-VARIABLE-ZIP-CODE)) $this->errors[] = Tools::displayError('ACA MENSAJE A MOSTRAR EN IDIOMAS') O sea que la classe validate.php valida el parametro enviado con la funcion isPostCode habria que ver que espera recibir y que se esta enviando, puede validar con otra funcion por ejemplo revisar que sea un string y limpiar caracteres esepeciales obivio con la classe Tools.php saludos Link to comment Share on other sites More sharing options...
tamu secreto Posted July 22, 2014 Share Posted July 22, 2014 (edited) pues debera comprobar entonces que el token exista correctamente en el formulario html, ingrese a la pagina en cuestion y busque en el codigo fuente (clic boton derecho ver codigo fuente) que se encuentre algo asi: <input type="hidden" name="token" value="{$token}" /> o tal vez: <input type="hidden" name="token" value="{$secure_token}" /> es un codigo se seguridad (que no garantiza nada pero esta) es una cadena generada con la funcion encriptado de prestashop puede encriptar el nombre de un modulo, pagina en la cual se esta o algun dato del cliente (no lo recuerdo). pero en fin, en teoria deberia estar enviando al controlador de las adress un parametro encriptado, puede que sea la pagina. si no esta, o sea si el campo del formulario esta vacio, hay algun problema en la classe o archivo que pasa el valor al tpl, ahora si esta el campo del forumulario y posee el valor, entonces se esta encriptando lo que no se espera, esto puede deberse a muchas circunstancias, incluso a que haya un espacio o algun salto... en fin, si no da con el problema puede modificar este valor: // Check page token if ($this->context->customer->isLogged() && !$this->isTokenValid()) $this->errors[] = Tools::displayError('Invalid token.'); cambie por: // Check page token if (!$this->context->customer->isLogged()) $this->errors[] = Tools::displayError('Hey no estas logueado!!! que haces aca!!!.'); otra opcion que tal vez le resulte comentar el codigo con /**/ asi : /* COMENTAR PARA :-) // Check page token if ($this->context->customer->isLogged() && !$this->isTokenValid()) $this->errors[] = Tools::displayError('Invalid token.'); */ ahora no se va esperar un token, pero se varificara que el cliente este logueado para cambiar su direccion. saludos PD: es recomendable usar el token y el tpl que genera el formulario lo encontrará en su theme si mal no recuerdo el archivo se llamaba adress.tpl algo asi. Edited July 22, 2014 by tamu secreto (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts