Foros del Web » Programando para Internet » PHP »

Agregar contenido "especial" a bdd

Estas en el tema de Agregar contenido "especial" a bdd en el foro de PHP en Foros del Web. Buenas!! Resulta que he montado un sistema para subir artículos, noticias y demás... todo funciona correctamente, menos cuando dentro del texto de ese artículo o ...
  #1 (permalink)  
Antiguo 22/05/2004, 03:20
Avatar de korbendallastc  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 226
Antigüedad: 21 años, 9 meses
Puntos: 0
Agregar contenido "especial" a bdd

Buenas!!

Resulta que he montado un sistema para subir artículos, noticias y demás... todo funciona correctamente, menos cuando dentro del texto de ese artículo o noticia, se escribe código que hace referencia a php. Entonces, el contenido no se agrega a la base de datos, supongo porque dicho código intereferirá en las verdaderas instrucciones.

No se si me explico. Es decir, si yo en mi caja de texto escribo texto normal, se agrega sin problemas, pero si por ejemplo pongo un código fuente de un script, con palabras como include, funciones y otros elementos propios del lenguaje, no se agrega.

Me gustaría saber el truco para que se escriba lo que se escriba, se agregue a la base de datos sin problemas. Un saludo y gracias!!!
__________________
  #2 (permalink)  
Antiguo 22/05/2004, 15:02
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 21 años, 4 meses
Puntos: 2
http://www.php.net/htmlentities

Yo uso eso ;) para que no pueda usar codigo malicioso en mis inputs y textareas
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #3 (permalink)  
Antiguo 23/05/2004, 09:28
Avatar de korbendallastc  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 226
Antigüedad: 21 años, 9 meses
Puntos: 0
Hum.. interesante, muy útil, pero no consigo aclararme. Algún ejemplo claro?

He probado con muchas cosas, pero no consigo que salga.
__________________
  #4 (permalink)  
Antiguo 23/05/2004, 09:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Podrías poner un ejemplo del "INSERT" que haces a tu BD con los datos de tu "textarea"?

Usas en la configuración de PHP (php.ini o ver en phpinfo() ): magic_quote_gpc = ON ?

Te lo comento por qué .. en principio si se añaden slash (/) (como hace por defecto magi_quote_gpc a ON) y se usa '$dato' (entre comillas) a la hora de hacer tu INSERT de tu variable .. en tu BD va a quedar integro tu código "PHP" o lo que escribas en el.

Posteriormente .. a la hora de presentar tus datos en "HTML" es donde tienes que aplicar: htmlentities() al dato que obtienes de tu BD para dejarlo "inofensivo" en HTML donde .. dicha función (si leistes el manual) veras que sustitue el caracter < por su &código y así con otros tantos caracteres similares.

Código PHP:
echo htmlentities($row['dato']); 
Pero .. es recomendable que el htmlentities() sólo lo apliques cuando "presentes" ese dato en HTLM .. Pues, si esos datos en alguna ocasión los envias a otro "cliente" (no un navegador -> HTML) no tiene sentido la función htmlentites (por qué veras esos códigos de control de HTML que.. por ejemplo para generar un archivo de texto plano no aplican).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 24/05/2004, 00:00
Avatar de korbendallastc  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 226
Antigüedad: 21 años, 9 meses
Puntos: 0
Ya me enterado!! Gracias por la explicación.

El problema al parecer, residía en las comillas del insert. En lugar de ponerlas dobles, las ponía simples. Ya se agrega todo tipo de contenido a la base de datos.

Ok, antes trataba de hacer el htmlentities() para agregar a la base de datos, pero me parece buena la idea que planteas de utilizarla mejor a la hora de mostrar los datos.

Gracias Cluster y gracias Gerald por contestar.
__________________
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 12:53.