Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con & (ampersand) como valor

Estas en el tema de Problema con & (ampersand) como valor en el foro de PHP en Foros del Web. Buenos días, Tengo una web la cual mediante un campo de búsqueda, cuando pulsas ENTER lanza un Ajax, que consulta en una base de datos ...
  #1 (permalink)  
Antiguo 14/09/2016, 00:36
 
Fecha de Ingreso: abril-2016
Mensajes: 13
Antigüedad: 8 años, 7 meses
Puntos: 0
Problema con & (ampersand) como valor

Buenos días,

Tengo una web la cual mediante un campo de búsqueda, cuando pulsas ENTER lanza un Ajax, que consulta en una base de datos la query correspondiente para encontrar los resultados según lo que se haya escrito en el campo de búsqueda.

El caso es que si busco un nombre que contenga el carácter & me corta la cadena hasta ese carácter.

Ejemplo: Busco "M & M" y solo me busca "M " (incluyendo el espacio claro).

He probado con str_ireplace para cambiar & por %26 (ASCII).
También he probado con:
htmlspecialchars()
htmlspecialchars_decode()
htmlentities()
Y alguno más que ahora no recuerdo.

Además cuando guardo lo que se introduce en el campo en una variable y lo muestro con "echo", el nombre ya está cortado, es decir no es la query que lo interpreta mal.

No entiendo como puedo hacer para que me aparezcan los símbolos especiales, ya que & es un carácter reservado para PHP.

Muchas gracias!
Saludos
  #2 (permalink)  
Antiguo 14/09/2016, 01:14
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Problema con & (ampersand) como valor

Prueba enviando el valor por post, ya que & es un carácter reservado para las URI
__________________
Unset($vida['malRollo']);
  #3 (permalink)  
Antiguo 14/09/2016, 01:16
 
Fecha de Ingreso: abril-2016
Mensajes: 13
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Problema con & (ampersand) como valor

Buenas,

Siempre me pasa igual, escribo un post de un problema que me lleva días y en 10 minutos lo averiguo... sois mi inspiración

Por si a alguien le pasa, el problema estaba en que la variable que se envía por Ajax, ya se envía cortada, por lo tanto en PHP es imposible reemplazar nada.

Hay que reemplazar el & o el carácter necesario, antes de enviarlo por Ajax.

Por ejemplo:

string = string.replace ("&", "%26");

y luego ejecutar el Ajax.

Espero que os sirva de ayuda :)

Saludos!

Etiquetas: ampersand, html, valor, variable
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 14:36.