Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
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

Problemas con variables pasadas en la URL en algunos caracteres.

Mi problema es el siguiente:

Quiero pasar por URL algunos datos que tienen caracteres especiales que no se pasan correctamente por la URL. Por ejemplo, si quiero pasar una variable por url que contiene espacios, sólo recibo la variable hasta el primer espacio.

Me explico con un ejemplo: necesito pasar variables por URL pero en el primer caracter en blanco que hay en la cadena que tengo que pasar se corta todo y pasa solo hasta lo que habia antes de ese caracter por ejemplo quiero pasar esto

$var1="primero";
$var2="aqui es el problema";
$var3="ultimo";
<a href="receptor.php?variable1=$var1&variable2=$var2&variable3=$var3">enlace</a>

Y lo que sucede es que solo pasa $var1 y la primera palabra de $var2.

Este problema solo lo tengo cuando lo ejecuto sobre linux puesto que lo hice en Windows y no hay problema alguno. Quiza sea algo que haya que configurar

La FAQ Problemas con variables pasadas en la URL en algunos caracteres. tiene

Pertenece a la categoría:


 Respuesta de Miguel Angel Alvarez  14/10/02 
Efectivamente, al pasar un parámetro por URL, existen problemas con ciertos valores de los parámetros. Por ejemplo, si un texto que queremos pasar contiene espacios, o símbolos como "+", no lo recibiremos correctamente, a no ser que hagamos algo:

Tienes que codificar la variable a formato URL antes de ponerla en el enlace. Si codificas la variable los caracteres problemáticos (como los espacios) serán cambiados por otros que no te darán problemas. Para ello tienes que utilizar la función de PHP urlencode().

Por ejemplo, mira este código PHP para pasar un par de datos conflictivos por URL:

<a href="mipag.php?var1=<?echo urlencode("mi valor 1");?>&var2=<?echo urlencode("otro+valor%raro.en*url");?>">
Enlace con paso de variables
</a>

Este código PHP generará la siguiente salida HTML, donde podemos apreciar cómo se han convertido los caracteres raros en códigos que se pueden pasar correctamente por la URL:

<a href="mipag.php?var1=mi+valor+1&var2=otro%2Bvalor%25raro.en%2Aurl">
Enlace con paso de variables
</a>

Entonces se podrán recibir los datos en la página a la que se dirige el enlace, como de costumbre:

echo $_GET["var1"];
echo $_GET["var2"];

Las varibles que se reciben ya tiene decodificada la URL, es decir, con los caracteres tal como queremos recibirlos, no por los códigos específicos de la URL.

Puedes encontrar información sobre esa función en la propia página de PHP: http://www.php.net/manual/es/function.urlencode.php

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se han encontrado 2 comentarios sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
 
FAQ relacionadas
  + Evitar la edición manual de parámetros de la URL
  + Pasar variables de ASP o PHP hacia Javascript o viceversa
  + Enviar un mismo formulario a tres frames distintos
  + Problemas al recibir variables por formulario y URL
  + register_globals y seguridad en PHP
  + Diferencias de utilizar $_POST o la variable directamente
  + Variables $_SERVER en PHP
  + Envio de variables a un formulario
  + Borrar contenido de $HTTP_POST_VARS
  + Formatear decimales en PHP
  + Convertir en mayusculas
  + Paso de variables por GET en PHP
  + Números aleatorios decimales en PHP
  + Recoger el nombre de la URL en php
  + Comprobar si una variable es un array en PHP
  + Diferencia entre $HTTP_POST_VARS y $_POST
  + Función explode en PHP
  + Convertir texto con saltos de línea a HTML mediante PHP
  + Eliminar etiquetas HTML y PHP de una cadena
  + Código de barras
  + Obtener datos de un form creado dinamicamente

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

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