Foros del Web » Programando para Internet » PHP »

Problema con Amperson &

Estas en el tema de Problema con Amperson & en el foro de PHP en Foros del Web. Hola a todos!! lo que pasa es que mando una variable la cual contiene un amperson por ejemplo $valor="C&C"; y lo mando a otra pagina ...
  #1 (permalink)  
Antiguo 27/05/2009, 12:57
 
Fecha de Ingreso: abril-2009
Mensajes: 83
Antigüedad: 15 años
Puntos: 2
Problema con Amperson &

Hola a todos!!

lo que pasa es que mando una variable la cual contiene un amperson por ejemplo

$valor="C&C";

y lo mando a otra pagina pa que me genere una consulta pero al cachar la variable con un get y lo unico que obtiene es la primera C de la variable

si alguien sabe porque se lo agredesco mucho de antemano muchas gracias
  #2 (permalink)  
Antiguo 27/05/2009, 13:04
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema con Amperson &

Diría que es porque estas usando las comillas dobles, las cuales evalúan el contenido, y & es el operador de la and bitwise, entonces te hace esta and con C y C, que acaba dando C, y de aquí que te de C como valor.

Prueba con:
Código:
$valor = 'C&C'
Nota que he usado las comillas simples, las cuales no evaluan el contenido.
__________________
Un Lannister siempre cumple sus promesas
  #3 (permalink)  
Antiguo 27/05/2009, 13:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Problema con Amperson &

trata de cambiarlo a hexadecimal

C%38C
  #4 (permalink)  
Antiguo 27/05/2009, 13:47
 
Fecha de Ingreso: abril-2009
Mensajes: 83
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema con Amperson &

Cita:
Iniciado por abimaelrc Ver Mensaje
trata de cambiarlo a hexadecimal

C%38C
y como lo cambio a hexadecimal
  #5 (permalink)  
Antiguo 27/05/2009, 13:50
 
Fecha de Ingreso: abril-2009
Mensajes: 83
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema con Amperson &

Cita:
Iniciado por Mort20 Ver Mensaje
Diría que es porque estas usando las comillas dobles, las cuales evalúan el contenido, y & es el operador de la and bitwise, entonces te hace esta and con C y C, que acaba dando C, y de aquí que te de C como valor.

Prueba con:
Código:
$valor = 'C&C'
Nota que he usado las comillas simples, las cuales no evaluan el contenido.
Mira yo ejecuto una funcion en javascript el cual va a otra que se encuentra en ajax el cual cacha el valor bien pero al llegar a la pagina.php y obtenerlo con
$valor=$_GET['valor']; ahi el valor me pone la C
  #6 (permalink)  
Antiguo 27/05/2009, 13:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con Amperson &

Cita:
Iniciado por Mort20 Ver Mensaje
Diría que es porque estas usando las comillas dobles, las cuales evalúan el contenido, y & es el operador de la and bitwise, entonces te hace esta and con C y C, que acaba dando C, y de aquí que te de C como valor.
[...]
estas equivocado Mort20, la evaluación dentro de comillas dobles solo es para variables... no para cualquier expresión !!!

Cita:
Iniciado por abimaelrc Ver Mensaje
trata de cambiarlo a hexadecimal

[...]
exacto! abimaelrc tiene toda la razón... ¿porque??

porque el carácter ampersand & es una carácter especial empleado en el esquema de la URLs ... y sirve para separar variables, esa es su función!

por eso, si se van a emplear caracteres reservados en URLs se deben usar las funciones de codificación pertinentes: urlencode() por ejemplo...

http://php.net/rawurlencode
http://php.net/urlencode

Edito: si estas usando Javascript, debes usar escape() para el mismo efecto...


suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 04:46.