Ver Mensaje Individual
  #18 (permalink)  
Antiguo 13/01/2010, 19:06
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Leer/Insertar comillas campo mysql

No se trata de probar y probar todo lo que se nos dice buscando la ¡combinación mágica! que nos de el resultado esperado.

El "problema" (digamos mejor, la confusión) es que htmlspecialchars() por defecto solo convierte las comillas dobles mientras que las simples las deja intactas. Para solucionar tu problema opta por:

1. Encerrar los valores de los atributos de tus tags HTML con comillas dobles (más recomendable)

ó

2. Usar htmlspecialchars() pasándole como segundo parámetro la constante ENT_QUOTES para que así convierta también las comillas simples.

Ahora, para el error al insertar en la base de datos. o más recomendable es usar mysql_real_escape_string() que cumple la misma función que addslashes (agregar barras) pero está especializada y orientada a prevenir los SQL Injection. Desde mi punto de vista, los datos en una base de datos deben ser una copia fiel de lo que se quizo guardar originalmente, es decir, no debería convertirse a entidades html (htmlspecialchars()) ni usar otras funciones afines, como nl2br(), que alteran el "texto nativo". Estas funciones deberían ser solo aplicadas al momento de mostrar los datos.

Y por ultimo, es un estándar HTML que todo texto que cumpla la función de valor de un atibuto en un tag debe estar codificada en sus respectivas entidades html. Es decir, siempre debes aplicar a tu texto htmlspecialchars() o htmlentities() si lo piensas usar, por ejemplo, en el value de un input.