Foros del Web » Programando para Internet » PHP »

Problema con el caracter "&"

Estas en el tema de Problema con el caracter "&" en el foro de PHP en Foros del Web. Hola a todos! Seguramente esta pregunta habra salido en mas de una ocasion. Pero como esto me corre bastante prisa y ademas no tengo practicamente ...
  #1 (permalink)  
Antiguo 07/04/2004, 02:07
 
Fecha de Ingreso: abril-2004
Mensajes: 4
Antigüedad: 13 años, 8 meses
Puntos: 0
Problema con el caracter "&"

Hola a todos!

Seguramente esta pregunta habra salido en mas de una ocasion.
Pero como esto me corre bastante prisa y ademas no tengo practicamente ni idea de php, aqui lanzo la pregunta porque no tengo mucho tiempo de mirar cosas.

Me he montado una cosa un poco rudimentaria para hacerlo funcionar pero estoy segura que existe algo mas rapido y que ademas mi codigo
sera fuente de problemas.

A ver tengo un portal montado en php, donde los jsp se forman a partir del php.

El problema biene cuando uno de los parametros que se pasan en el jsp tienen el caracter "&", por ejemplo:

prueba.jsp?campo1=valor1&campo2=valor&2&campo3=val or3

En este caso cuando se llama al jsp, este le llega el valor cortado asociado al campo2 (llega solo "valor" ).

Ya se que se podria codificar los parametros del jsp pero esa solucion no me vale porque tengo que modificar muchisimos jsps.
Existe algo en php que codifique el valor que tiene estos parametros (creo que estos parametros vienen en una variable de php llamada $QUERY_STRING)

Muchas gracias por todo, saludos
  #2 (permalink)  
Antiguo 07/04/2004, 02:49
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Usa urlencode() (www.php.net/urlencode) para los valores de los parametros al crear el link:
Código PHP:
echo 'prueba.jsp?campo1='.urlencode('valor1').'&campo2='.urlencode('valor&2').'&campo3='.urlencode('valor3'); 
Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 07/04/2004, 06:00
 
Fecha de Ingreso: abril-2004
Mensajes: 4
Antigüedad: 13 años, 8 meses
Puntos: 0
Bueno, me sirve a medias, lo unico para codificar

Creo que lo que pretendia yo que existiera en php, no existe.

Era coger la variable $QUERY_STRING (que contiene los parametros a pasar al jsp) y los caracteres que fueran "&" y que no fueran separadores de parametros se codificaran como el caracter %26.

De este modo pretendia evitarme tener que parsear la QUERY_STRING parseando los parametros.

Muchas gracias por la respuesta
  #4 (permalink)  
Antiguo 07/04/2004, 06:17
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
No acabo de entender. ¿No es PHP quien genera la URL del JSP? ¿O simplemente "pasa" el querystring que recibe al JSP? Es que en este ultimo caso, el problema es del que pasa esos valores al PHP. Es mas, para PHP el valor de campo2 es 'valor', no 'valor&2'.

Y el valor de $_SERVER['QUERY_STRING'] es simplemente la cadena tal cual.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 07/04/2004, 06:28
 
Fecha de Ingreso: abril-2004
Mensajes: 4
Antigüedad: 13 años, 8 meses
Puntos: 0
Totalmente de acuerdo, es lo que dices tu.

Pero la cosa era intentar hacer una transformacion en php, para evitar tener que modificar una increible cantidad de jsps en los que no se realiza el paso de parametros de forma correcta (es decir codificados).
Ya se que es una chapuceria pero es lo que hay.

Como de php tengo unas nociones demasiado basicas de alli vienen mi dudas, por eso que creo que me voy a tener que leer la cadena ($QUERY_STRING) y extraer lo que son parametros y son valores, y hacer yo las codificaciones.

Muchas gracias por tu rapida respuesta
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:13.