Comunidad de diseño web y desarrollo en internet online

Guardar HTML en MySQL con PHP

Citar            
MensajeEscrito el 21 Ene 2009 10:16 pm
Buenas noches...

Es la primera vez que uso un foro y soy un fosil informático que intenta reciclarse ...

Tengo una pagina que visualmente está totalmente desarrollada en Flash y que muestra textos almacenados en MySQL a traves de PHP. Mi problema está en que quiero crear una herrmienta para almacenar textos HTML en la base de datos y desconozco la(s) función(es) necesarias para formatear el texto de tal manera que se pueda ejecutar la sentencia SQL sin problemas. Me explico. El código PHP que recibe los datos o texto desde Flash y que pretende guardar el mencionado texto es:


<?php
include ("includes/config.php");
include ("includes/funciones.php");
$cnx = conectar ();
$VALOR = $_GET['VALOR'];
$NOMBRE_CAMPO = $_GET['NOMBRE_CAMPO'];
$ORDEN = $_GET['ORDEN'];
$paramSQL = "UPDATE TEXTOS SET VALOR = '".$VALOR."' WHERE NOMBRE_CAMPO = '" $NOMBRE_CAMPO."' AND ORDEN = ".$ORDEN
$res = mysql_query($paramSQL);
if(mysql_error()) {
echo "&estado=".$paramSQL;
}else{
echo "&estado=".substr($paramSQL,0,13)." REALIZADO CON EXITO&";
}
mysql_close(cnx);
?>


Donde VALOR es la variable que contiene el texto HTML. Se trata de un formateo HTML sencillo, el que unTextArea de Flash es capaz de mostrar, del tipo:

<a href="http://www.secardiologia.es/"><u>Sociedad Española de Cardiología</u> </a> Web corporativa de la Sociedad y Fundación Española de Cardiología<br><br><a href="http://www.escardio.org/"><u>European Society of Cardiology</u> </a>

A todas luces la sentencia UPDATE falla con la primera comilla doble almacenada en VALOR...

¿Cómo puedo almacenar el texto mediante PHP?

Muchismas gracias por adelantado

Por bosquimano

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ene 2009 05:03 am
el html es solo texto plano con etiquetas, puedes guardar sin problemas tu html en cualquier campo varchar, text o similar

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 22 Ene 2009 07:52 am
:P En el MySQL efectivamente no tengo problema. Es en la rutina PHP que tengo el problema, al montar la sentencia SQL $paramSQL = "UPDATE TEXTOS SET VALOR = '".$VALOR... falla por la razón ya explicada, es decir porque $VALOR hay caracteres como las comillas que desvirtuarán $paramSQL y no se ejecuta correctamente el $res = mysql_query($paramSQL);. Lo que estoy pidiendo es la forma de tratar $VALOR, la variable en PHP... Tal vez haya otra manera de guardar cosas en MySQL sin emplear sentencias SQL (lo dudo) o alguna manera de tratar el $VALOR (¿htmlentities()?...)

Por bosquimano

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ene 2009 01:59 pm
huu eso es basico :O

XD no estrés todos empezamos asi

una comilla simple se ve como carecter dentro de una doble comilla y viceversa

Código PHP :

$var1 = " ' " ;
$var2 =' " ' ;

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 22 Ene 2009 04:41 pm
:oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:

Ooooo caaa... Lo dicho soy un fosil... y lo de pasar de los lenguajes fuertemente tipificados a los derivados de goma del C me cuesta... entonces ¿la cosa se reduce a aplicar un $VALOR=strtr($VALOR, ""","'")?

Por bosquimano

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ene 2009 05:11 pm
ademas puedes usar variables dentro de " " y array dentro de " " encerrados entre { }

Código PHP :

$var1 = 'hola '; 
$var2 = "$var1 mundo";
$mi_array[1] = $var2;
echo "<h1>{$mi_array[1]}</h1>"; //output <h1>hola mundo</h1> 

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 22 Ene 2009 05:18 pm
¡Qué horror !... ya nada es lo que era ;-) ... Muchisimas gracias por la ayuda...

Por bosquimano

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Feb 2009 06:48 pm
Bueno, sólo comentar al que le pueda interesar que mi problema era un '.' de concatenación que me faltaba en la sentencia SQL y que todo queda bien guardado en el MySQL con un conveniente ...

Código :

$VALOR=htmlentities(addslashes($VALOR));

...que lo deja de manera apropiada en la base de datos, en mi caso, mediante un ...

Código :

$paramSQL = "UPDATE TEXTOS SET VALOR = '".$VALOR."' WHERE NOMBRE_CAMPO = '".$NOMBRE_CAMPO."' AND ORDEN = ".$ORDEN.";";

Para sacarlo y llevarlo a la pantalla no he hecho más que aplicar un ...

Código :

html_entity_decode($salida);


Dicho esto, doy por acabada mi duda ... y me voy a plantear otra al foro de Actionscript =)

Por bosquimano

5 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.