Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema tildes, eñes, símbolos especiales por URL

Estas en el tema de Problema tildes, eñes, símbolos especiales por URL en el foro de PHP en Foros del Web. Saludos amigos. He buscado y probado todas las opciones que ví en el foro y por buscadores, pero ninguna me ha servido: urlencode, decode, raw, ...
  #1 (permalink)  
Antiguo 03/06/2012, 14:55
Avatar de cchaparro  
Fecha de Ingreso: febrero-2009
Ubicación: Medellín
Mensajes: 80
Antigüedad: 15 años, 2 meses
Puntos: 2
Pregunta Problema tildes, eñes, símbolos especiales por URL

Saludos amigos.

He buscado y probado todas las opciones que ví en el foro y por buscadores, pero ninguna me ha servido: urlencode, decode, raw, charset's, htmlentities, etc, nada, ninguna sirve.

Lo que necesito es sencillo, pasar variables con nombres que tienen eñes y tildes (así sean variables con símbolos especiales) por URL,
prueba_tildes2.php?nom=Marta Montañer

y ni modo por ninguna parte. La cabecera:
<META http-equiv="Content-Type" content="text/html" charset="ISO-8859-1" />
... aunque suelo poner:
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
... si pueden me indican qué META es el correcto.

Y bueno, con los dos tampoco funciona nada, siempre saca lo mismo:
" -----------------------------------------
Not Found

The requested URL /prueba_tildes/prueba_tildes2.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
" -------------------------------------------

He leído funciones para convertir los símbolos especiales a otros caracteres, pasarlos por URL y luego reconvertirlos, pero funciones "manuales", y eso no es lo que busco o quisiera encontrar, sino un método lo más correcto y cómodo que debería existir con PHP.

A nivel local siempre me funciona correctamente, es en Internet donde me estresa. Otros módulos que ejecuto no dan problemas, es únicamente cuando se utiliza URL para pasar este tipo de datos.

Bueno amigos, espero ojalá me puedan colaborar en este problemón que tengo desde hace semanas a ver si lo resuelvo y de camino ayuda a otros.

Muchas gracias.
  #2 (permalink)  
Antiguo 03/06/2012, 15:20
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 18 años
Puntos: 58
Respuesta: Problema tildes, eñes, símbolos especiales por URL

De todos es sabido que tildes, eñes, espacios y demás son complicados en temas de URL's. Yo creo que nadie se plantea enviar una URL con esos caracteres. De todas formas, si en el enlace pones
nom=urlencode('Marta Montañer')
y en la recepción
urldecode($_GET['nom'])
debería funcionar.. pero la opción buena es filtrar esos caracteres (nom=marta_montaner)
  #3 (permalink)  
Antiguo 03/06/2012, 19:29
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años
Puntos: 34
Respuesta: Problema tildes, eñes, símbolos especiales por URL

mandalos por post o usá session. no es recomendable usar la querystring para mandar datos con caracteres raros, o muy largos, o que contengan espacios o esas cosas
  #4 (permalink)  
Antiguo 05/06/2012, 01:16
Avatar de djboro88  
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 180
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Problema tildes, eñes, símbolos especiales por URL

A mi me pasaba algo parecido, echa un vistazo:
http://www.forosdelweb.com/f18/probl...tucion-996595/
  #5 (permalink)  
Antiguo 09/06/2012, 15:22
Avatar de cchaparro  
Fecha de Ingreso: febrero-2009
Ubicación: Medellín
Mensajes: 80
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Problema tildes, eñes, símbolos especiales por URL

Gracias por los apuntes a todos.

Probé de nuevo con urlencode en la forma que mencionas y nada, me saca:
nom=Marta+Monta%F1er
... el espacio en blanco lo ubica bien, pero la ñ ni modo.

He revisado las otras opciones que proponen y bueno, es regresar al asunto de conversión "manual" de caracteres, lo cual intento evitar.

Sinceramente, en el año 2012 que estamos, es increíble que la tecnología digan que "avanza" y veo con este tema que siguen dando pasos atrás. Tantos procesadores y miniaturas y no son capaces de ofrecer un sistema o función capaz de hacer este proceso por URL más cómodo.

No trato de enviar cadenas muy largas por URL, tan sólo son nombres y apellidos.

Nunca hago formularios por get, todos por post; en este caso, las variables no las envío con formularios, sino que las necesito pasar por URL directamente porque son resultado de procesos y genero enlaces que deben pasarlas según sean necesarias.

Intentaré entonces pensar en codificar caracteres "manualmente", y pensaré si la opción que propone de utilizar variables de sesión me puede servir, aunque quisiera evitarlas para no cargar memoria adicional al servidor entre otros.

El problema es que esto afecta a varios procesos en varios archivos, y ponerme ahora a utilizar otro sistema que no sea por URL's me queda complicado.

Agradezco mucho toda su ayuda, de veras gracias por el apoyo.
  #6 (permalink)  
Antiguo 09/06/2012, 17:03
 
Fecha de Ingreso: diciembre-2011
Ubicación: Medellín
Mensajes: 68
Antigüedad: 12 años, 4 meses
Puntos: 7
Respuesta: Problema tildes, eñes, símbolos especiales por URL

No estoy seguro, pero creo que un simple charset utf-8 funcionaria:

<META http-equiv="Content-Type" content="text/html" charset="utf-8" />

Igual prueba, y si algo avisas :D.

PD: Tambien soy paisa .
  #7 (permalink)  
Antiguo 29/06/2012, 20:26
Avatar de cchaparro  
Fecha de Ingreso: febrero-2009
Ubicación: Medellín
Mensajes: 80
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Problema tildes, eñes, símbolos especiales por URL

Ya probé utf-8 y la ISO-8859-1 sin éxito, pero de aquí a un mes aprox. intentaré probar con variables de sesión a ver qué tal se da, aunque seguiría siendo una tristeza completa que no se pueda por URL con GET.

Esperemos un día no muy lejano (siquiera antes del fin del mundo), alguien luche por los derechos de cada lenguaje en Internet, para que respeten un poco a todos los usuarios que eso merecemos. Y si no quieren ayudar las empresas que crean lenguajes sobre Internet, entonces que empiecen a cambiar nombres que tengan tildes y eñes, a ver quién cede primero.

Bueno amigos, como siempre muy agradecido por sus consejos y su buena ayuda. Si algo encontrara, se los posteo como posible solución y ayudar a todo el que lo necesite.... si encuentro algo que funcione, claro. Un saludito.

P.D.: Ubicación Medellín, resido acá, pero no soy de acá, a jugar a las adivinanzas :D. Pero casi paisa jeje. Un saludo.
  #8 (permalink)  
Antiguo 29/06/2012, 21:30
 
Fecha de Ingreso: diciembre-2011
Ubicación: Medellín
Mensajes: 68
Antigüedad: 12 años, 4 meses
Puntos: 7
Respuesta: Problema tildes, eñes, símbolos especiales por URL

Acabo de ver que mi último comentario está erroneo, el correcto sería así:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Ensaya con ese, y miras haber que tal.

(Que quede claro que eso va dentro de la etiqueta "head")
  #9 (permalink)  
Antiguo 04/07/2012, 22:18
 
Fecha de Ingreso: junio-2012
Ubicación: sabadell
Mensajes: 46
Antigüedad: 11 años, 10 meses
Puntos: 6
Respuesta: Problema tildes, eñes, símbolos especiales por URL

Buenos dias comunidad!!

¿Y no sería posible que codificases el valor de la variable de envio con javascript en el lado cliente y después del envio, en la parte de la recepción la decodificases?

Te paso un ejemplo que acabo de encontrar:
http://www.anieto2k.com/2006/10/01/encripta-y-desencripta-en-base64-desde-javascript/
[URL="http://www.anieto2k.com/2006/10/01/encripta-y-desencripta-en-base64-desde-javascript/"]http://www.anieto2k.com/2006/10/01/encripta-y-desencripta-en-base64-desde-javascript/[/URL]La idea es la siguiente: En el lado cliente desde el mismo formulario codificas el valor del campo input que acabas de rellenar -> procesas formulario vía GET o POST, recuperas y decodificas..

No se..
Este aporte esta escrito desde mi más sentida ignorancia respecto al tema..
__________________
Ante una duda.. ha de mostrarse valor/esfuerzo..
  #10 (permalink)  
Antiguo 05/07/2012, 08:29
 
Fecha de Ingreso: marzo-2010
Mensajes: 25
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problema tildes, eñes, símbolos especiales por URL

Hola, a mi me sirvio este código:

Código PHP:
Ver original
  1. mysql_query("SET NAMES 'utf8'");
  #11 (permalink)  
Antiguo 24/10/2012, 16:26
Avatar de cchaparro  
Fecha de Ingreso: febrero-2009
Ubicación: Medellín
Mensajes: 80
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Problema tildes, eñes, símbolos especiales por URL

Bueno, después de varias pruebas durante este tiempo, resumí en dos posibilidades:
1.- Utilizando variables de sesión.
2.- Utilizando POST, no GET, y utilizando los campos id en lugar de los campos nombre.

Con la primera opción, el problema estaría en que el server puede saturarse al tener que "viajar" 10 ó 15 variables de consulta por cada usuario logueado, lo cual podría ser delicado. Pero la solución estaría completada.

Con la segunda opción, pues fastidia un rato al no poder hacer click en algún enlace que precise tener el nombre de una persona o una descripción, ya que cualquier variable tipo texto podría contener caracteres especiales, tildes, eñes, etc. Utilizando el campo id he resuelto el problema, y de ahí tomo los datos que preciso con una SQL.

Sin embargo, a la hora de hacer formularios de búsquedas avanzadas por POST, ha sido un verdadero desafío por código para conseguir que retome las variables cuando ha pasado de página; no siempre hacer GET por el campo id es lo que necesito, pero me acomodé a esta opción en lugar de las variables de sesión.

En resumen, esperemos que un día permitan "viajar" los caracteres especiales de mejor forma por URL's, de momento toca aguantarse el parche.

Gracias a todos por la colaboración tan extensa.
  #12 (permalink)  
Antiguo 26/05/2013, 18:53
Avatar de cchaparro  
Fecha de Ingreso: febrero-2009
Ubicación: Medellín
Mensajes: 80
Antigüedad: 15 años, 2 meses
Puntos: 2
Sonrisa Respuesta: Problema tildes, eñes, símbolos especiales por URL

Bueno, al cabo de mucho tiempo, sin querer me encontré con la solución a este problema, y no está en el código fuente ni en funciones, sino en la configuración del hosting.

Hace poco tiempo cambiaron la administración de mi proveedor de hosting, adquirí uno con mayor capacidad, pero en lugar de tener el data center en Norteamérica, resulta que me tocó en Alemania.

Tuve el inconveniente de la franja horaria para mis códigos, tuve que añadir una línea a todas las cabeceras para arreglar esta parte.

Pero cuando hice una importación de clientes con tildes y eñes, me olvidé de cambiar las eñes por una "n"; hice operaciones que antes producían errores y todo funcionaba correctamente.

Así que imagino que la solución estuvo en algo que hicieron en este nuevo servidor, quizás en la configuración regional y de idioma del servidor compartido, por la cual las tildes y eñes no tienen ya problemas para pasar por la URL.

Por si a alguien le sirve la información, doy el tema como solucionado. Gracias a todos por toda su colaboración y grata ayuda.

Etiquetas: eñes, especiales, html, tildes, url, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:38.