PHP, BD y HTML

Hola,
He realizado una página web completa en PHP y CSS. Es la primera vez que hago algo asi, y cuando quiero mostrar algo por pantalla uso código HTML, como es dentro del PHP lo que hago es poner print "Aquí va lo que sea con sus etiquetas HTML";.
El problema es que ese código HTML con sus etiquetas los quiero tener almacenados en una base de datos (Access) y que mi PHP lea la tupla que sea lo guarde en una variable y después lo muestre por pantalla. Entonces lo que hago es leer de la base de datos y guardar lo que lee en $variable y después pongo print $variable; y en vez de mostrarme el texto con el formato que le indica el HTML me muestra el código HTML que lee... ¿Cómo puedo arreglar esto?

1 respuesta

Respuesta
1
Haría falta ver el código en donde haces el print y el valor de la variable.
Te diré que para 'construir' la página HTML debes seguir unas ciertas normas:
La página debe tener al menos las siguientes etiquetas (te las pongo con espacios para que no se las 'coma' el editor:
< h t m l >
< h e a d >
< t i t l e >
< / t i t l e >
< / h e a d >
< b o d y >
< / b o d y >
< / h t m l >
Lo que escribas, si quieres que se visualice, debería ir entre la etiqueta body de apertura y la de clausura. Si no es así, no se verá, porque la página no estará bien formada.
Otra cosa que debes tener en cuenta, es que al almacenar los códigos en tu base de datos, debes escapar el código para evitar que la sentencia SQL pueda fallar, por ejemplo por que haya una comilla en el código, usando mysql_real_escape_string()
Es que el código es muy extenso por eso no lo pongo por aquí, pero yo uso todas las etiquetas HTML que me dices, pero por ejemplo, sería algo así:
< h t m l >
< h e a d >
< t i t l e >
< / t i t l e >
< / h e a d >
< b o d y >
/*Por aquí hay código PHP*/
print"Aquí abrimos un div del CSS";
/*Trabajamos con la base de datos y leemos un texto que guardamos en variable pero ese texto esta modelado con div del CSS*/
print $variable;
print"Aquí abrimos un div del CSS";
/*Por aquí hay código PHP*/
< / b o d y >
< / h t m l >
No sé si me explico...
He revisado el código y en la base de datos no hay comillas sueltas ni nada...
Saludos y gracias por la respuesta.
Entonces todo parece correcto, así que el problema está o bien en el contenido de la $variable, o bien en el estilo CSS que aplicas.
¿Puedes enviar un ejemplo sencillo y corto de ambos?
Por ejemplo, ¿qué ocurre si $variable vale '
<p>Prueba <b>grande</b></p>
' ?
¿Qué estilos CSS tienes definidos? Concretamente para body.
Respondiendo a tu pregunta:
Por ejemplo, ¿qué ocurre si $variable vale '
<p>Prueba <b>grande</b></p>
'?
Yo en la BD tendría metido :
<p>Prueba <b>grande</b></p>
Y leería el contenido de la bd y lo guardaría en $variable por tanto presupongo que esa variable contiene el string
<p>Prueba <b>grande</b></p>
.
En mi código PHP pongo: print $variable;
Y por pantalla en vez de salirme prueba grande me sale:
<p>Prueba <b>grande</b></p>
Tengo montones de estilos definidos en el body...
No se si me he explicado correctamente. Sin meter el la BD las cosas me funciona perfectamente, es decir si pongo el código directamente en la web, el problema es al leer de la BD.
Debes comprobar si el contenido de la variable después de leer la base de datos es el mismo de cuando lo pusiste.
Cuando te pedía el estilo del body me refería a si tienes un estilo concreto aplicado al body.
Para saber si es un problema de los estilos, elimínalos. Y entonces prueba a hacer print $variable. Si se ve bien, es que tienes un problema en los estilos.
Te pedía el código, porque sin verlo no se puede deducir el problema. La única explicación es que tu documento no sea una página web bien formada.
Una pregunta, si escribes:
Print "
<p>Linea 1</p>
";
print $variable;
¿La línea 1 muestra también las etiquetas? Si es así, tu página no es un documento HTML.
¿Hay alguna sentencia header() en tu código? Eso puede cambiarlo todo.
Hola,
Gracias a tus aclaraciones he conseguido que más o menos funcione, pero de momento me he dado cuenta que hay otra cosilla que no va.
Si pongo esto (las comillas es para separarlo de este texto no las incluyo en el código):
"
<p><b>Hola</b> Mundo</p>
<p>Hola de nuevo</p>
"
Me aparece por pantalla:
"Hola Mundo.
Hola de nuevo"
O sea, que me sale perfecto, el problema es si quiero poner un espacio entre párrafos:
"
<p><b>Hola</b>Mundo</p>
<br>
<p>Hola de nuevo</p>
"
Me sale igual que en el ejemplo anterior por pantalla, es decir, no me separa los párrafos, ¿por qué?
Pues no puedo saber porqué sin ver el código. Pero probablemente se deba a la configuración que hayas establecido con tus estilos CSS.
De nuevo, prueba a ejecutarlo sin estilos a ver si ves algún cambio.
Otra opción que tienes para separar más los párrafos es aplicarles un estilo que los separe.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas