17/4/07
Por: Jorge Montes de Oca<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.
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.