Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo
FAQ: Problemas con variables pasadas en la URL en algunos caracteres.

estoy aqui mal Se muestran 2 comentarios sin revisar

Jorge Montes de Oca  17/4/07 
<a href="aplicacion.php?user=<?echo urlencode("$usuario");?>">PASA</a>
<a href="control.php?user=$usuario">PASA</a>
<a href="seguridad.php?user='$usuario'">PASA</a>

estoy intentanto pasar el valor de una variable a tres script diferentes sin ningun exito la variable se captura en un imput tex....

alguien me puede ayudar por favor.

Carlos  25/8/07 
Si el carácter raro es unas comillas dobles, se convierte a %22 cuando usamos urlencode()

Vale, hasta aquí bien. Mi problema (que me está volviendo loco) es al obtener ese parámetro URL en el script de destino. Me explico:

Imaginen una web que imprime por la pantalla lo que se ha recibido por un parámetro URL llamado "nombre":

<?php
echo $_REQUEST["nombre"];
?>

Supongamos que el script se llama "saludar.php". Bien, si el parámetro nombre tiene caracteres alfanuméricos, espacios, etc. todo va bien.

Pero si el parámetro nombre tiene comillas, entonces el script saludar.php automáticamente "escapa" el nombre y delante de cada comilla añade la barra invertida. Es decir, el contenido del parámetro nombre se cambia automáticamente!!!

Pruébenlo poniendo en el navegador la siguiente URL:

http://localhost/saludar.php?nombre="pepe"

saludar.php debería imprimir "pepe" por pantalla (con las comillas), pero sin embargo imprime \"pepe\". Y no es un problema de echo o print, ya que si hacemos un srtlen($_REQUEST["nombre"]) resulta que nos devuelve 8 caracteres en vez de 6!!!

Esto no ocurre en otros lenguajes como JSP. ¿Qué solución existe para que al tomar un parámetro URL automáticamente el PHP no me lo "escape"?

Muchas gracias por vuestra inestimable ayuda y por vuestro tiempo.

Ver el articulo / faq completo Ver la FAQ y todos sus comentarios
Añadir un comentario al artículo Añadir un comentario del artículo
  Ir arriba


DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia