Foros del Web » Programando para Internet » PHP »

Mostrar html de Mysql en PHP

Estas en el tema de Mostrar html de Mysql en PHP en el foro de PHP en Foros del Web. Hola tengo un editor tipo Wysiwyg, y cuando la gente escribe algo se graba en myql. Bien pues cuando quiero mostrarlo en php, haciendo un ...
  #1 (permalink)  
Antiguo 20/09/2010, 17:56
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 2 meses
Puntos: 3
Mostrar html de Mysql en PHP

Hola tengo un editor tipo Wysiwyg, y cuando la gente escribe algo se graba en myql.
Bien pues cuando quiero mostrarlo en php, haciendo un "echo" todo el formato que tiene el texto (negrita, links,...) desaparece.

el codigo que tengo es:

Código PHP:

$query 
"SELECT * FROM id where id=1";
$result mysql_query($query);
$row mysql_fetch_assoc($result);
$contents $row['content'];

echo 
$contents
¿Podria alguien ponerme el código en PHP ó HTML con el que no se pierda el html guardado en la base de datos, cuando quiero mostrarlo?

Cuando lo temine (mañana) prometo colgar el codigo
  #2 (permalink)  
Antiguo 20/09/2010, 19:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar html de Mysql en PHP

has revisado la base de datos para asegurar que efectivamente el formato se conserva ahí?

porque bueno, si guardas el HTML sin eliminarlo deberías poder mostrarlo igualmente con el HTML conservado... así que tu problema no radica aquí, sino en la forma en la que almacenas dicho HTML...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/09/2010, 03:00
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Mostrar html de Mysql en PHP

EDITOR WYSIWYG CON PHP Y MYSQL

Si claro, he comprobado como se guarda todo el html.
Ademas adjunto el codigo por si alguien tambien quiere probarlo:

Abris una carpeta por ejemplo llamada editor en vuestro Cpanel y descargaros el editor que es Free y lo descomprimis en esta carpeta, depues poner estos dos codigos que os adjunto y no olvideis MODIFICAR LOS PASSWORD,... segun vuestro mysql:
Tambien tenis que crear una base de datos llamada editror y una tabla llamada id con myphpAdmin podeis insertar dos columnas llamadas id y content, y luego las rellenas con un ejemplo poniendo en id el valor 1, y en content el valor hola

Archivo index.php:
Código PHP:
<?php
if(isset($_POST['save'])) {
    print 
"<pre>";
    
print_r($_POST);
    print 
"</pre>";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Full featured example</title>

<!-- TinyMCE -->
<script type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
    tinyMCE.init({
        // General options
        mode : "textareas",
        theme : "advanced",
        plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount",

        // Theme options
        theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
        theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
        theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        theme_advanced_statusbar_location : "bottom",
        theme_advanced_resizing : true,

        // Example content CSS (should be your site CSS)
        content_css : "css/content.css",

        // Drop lists for link/image/media/template dialogs
        template_external_list_url : "lists/template_list.js",
        external_link_list_url : "lists/link_list.js",
        external_image_list_url : "lists/image_list.js",
        media_external_list_url : "lists/media_list.js",

        // Replace values for the template plugin
        template_replace_values : {
            username : "Some User",
            staffid : "991234"
        }
    });
</script>
<!-- /TinyMCE -->

</head>
<body>

<form method="post" action="insert.php">
    <div>
        <h3>Full featured example</h3>

        <p>
            This page shows all available buttons and plugins that are included in the TinyMCE core package.
            There are more examples on how to use TinyMCE in the <a href="http://wiki.moxiecode.com/examples/tinymce/">Wiki</a>.
        </p>

        <!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
        <div>
            <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">
<?php
$con 
mysql_connect("localhost","username","password");
if (!
$con)
  {
  die(
'Could not connect: ' mysql_error());
  }
mysql_select_db("editor");
$query "SELECT * FROM id where id=1";
$result mysql_query($query);
$row mysql_fetch_assoc($result);
$contents $row['content'];
echo 
$contents;
?>
            </textarea>
        </div>

        <!-- Some integration calls -->
        <a href="javascript:;" onmousedown="tinyMCE.get('elm1').show();">[Show]</a>
        <a href="javascript:;" onmousedown="tinyMCE.get('elm1').hide();">[Hide]</a>
        <a href="javascript:;" onmousedown="tinyMCE.get('elm1').execCommand('Bold');">[Bold]</a>
        <a href="javascript:;" onmousedown="alert(tinyMCE.get('elm1').getContent());">[Get contents]</a>
        <a href="javascript:;" onmousedown="alert(tinyMCE.get('elm1').selection.getContent());">[Get selected HTML]</a>
        <a href="javascript:;" onmousedown="alert(tinyMCE.get('elm1').selection.getContent({format : 'text'}));">[Get selected text]</a>
        <a href="javascript:;" onmousedown="alert(tinyMCE.get('elm1').selection.getNode().nodeName);">[Get selected element]</a>
        <a href="javascript:;" onmousedown="tinyMCE.execCommand('mceInsertContent',false,'<b>Hello world!!</b>');">[Insert HTML]</a>
        <a href="javascript:;" onmousedown="tinyMCE.execCommand('mceReplaceContent',false,'<b>{$selection}</b>');">[Replace selection]</a>

        <br />
        <input type="submit" name="save" value="Submit" />
        <input type="reset" name="reset" value="Reset" />
    </div>
</form>

</body>
</html>

Archivo insert.php
Código PHP:
<?php
$con 
mysql_connect("localhost","username","password");
if (!
$con)
  {
  die(
'Could not connect: ' mysql_error());
  }
mysql_select_db("editor");


$sql="UPDATE id SET content=('$_POST[elm1]') WHERE id='1'";

if (!
mysql_query($sql,$con))
  {
  die(
'Error: ' mysql_error());
  }
echo 
"1 record added";


$query "SELECT * FROM id where id=1";
$result mysql_query($query);
$row mysql_fetch_assoc($result);
$contents $row['content'];

echo 
$contents;

mysql_close($con)
?>

Solo me falta que alguien me diga el codigo para mostrar el contenido pero conservando el formato del html, pues actualmente cuando hago un echo aparece sin los link, negrita,...

alguien me ayuda?
gracias

Fuentes: editor Wysiwyg http://tinymce.moxiecode.com
Post del codigo (incompleto) : http://www.daniweb.com/forums/thread228062.html
  #4 (permalink)  
Antiguo 21/09/2010, 03:48
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Mostrar html de Mysql en PHP

Yo lo uso y no uso ningun codigo especial para darle formato lo saco como una columna normal...puede pegar un ejemplo de lo que guarda en la base de datos?porque a mi me lo guarda por ejemplo <p>texto<p> y al salir si o si lo interpreta como lo que es html.
  #5 (permalink)  
Antiguo 21/09/2010, 04:33
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 2 meses
Puntos: 3
Editor Wysiwyg en PHP + MYSQL + TynyMCE editor

Funciona!!

lo que pasaba es que cuando creeis la columna content teneis que decirle VARCHAR y ponerle en el PHPmyAdmin, cuando os pregunta la longitud del campo (Length/Values) por ejemplo 100000


Y además guarda todo los link, columnas, imagenes,...

gracias AdrianSeg
  #6 (permalink)  
Antiguo 21/09/2010, 04:51
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Mostrar html de Mysql en PHP

Cita:
VARCHAR y ponerle en el PHPmyAdmin, cuando os pregunta la longitud del campo (Length/Values) por ejemplo 100000

varchar solo es hasta 255 :) asi que cuidado.
  #7 (permalink)  
Antiguo 23/09/2010, 04:41
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Mostrar html de Mysql en PHP

Bien entonces creo que usare LONGTEXT ó MEDIUMTEXT ¿supongo que para poner contenido de una pagina web es suficiente?

Podrias por favor decirme si este método de conectar con la base de datos, el codigo en general,...

¿Es seguro?

¿Que podria hacer para extremar la seguridad? ¿algun codigo ó consejo?


gracias de nuevo
  #8 (permalink)  
Antiguo 23/09/2010, 04:57
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Mostrar html de Mysql en PHP

Si esta bien depende para que lo uses puede usar el que mejor te convenga.

Respecto a la seguridad:

No dejes que alguien pueda acceder directamente a insert.php sino ha pasado por el archivo anterior si permitas que recarge la pagina porque seguramente al hacerlo reenvie los datos a la base.
  #9 (permalink)  
Antiguo 23/09/2010, 05:03
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Mostrar html de Mysql en PHP

Ok, como puedo hacerlo?

pongo insert.php en una carpeta aparte y protejo el directorio desde el cpanel ¿?

¿Por que tanta seguridad con insert.php si en index.php tambien estan los password de la database? deberia mejor hacer un include en index.php para coger los password de la database de otro fichero por ejemplo pass.php?
  #10 (permalink)  
Antiguo 23/09/2010, 05:06
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Mostrar html de Mysql en PHP

Seria una opcion.
  #11 (permalink)  
Antiguo 23/09/2010, 05:08
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Mostrar html de Mysql en PHP

Cual sería la mejor opcion, y supersegura?
  #12 (permalink)  
Antiguo 23/09/2010, 05:16
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Mostrar html de Mysql en PHP

Este es un buen post sobre seguridad en PHP, por si estás interesado en ello.
  #13 (permalink)  
Antiguo 23/09/2010, 05:16
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Mostrar html de Mysql en PHP

1º opción la que más me gusta (no se cuanto segura es):

Sino trae variable el parámetro no entras.

Código PHP:
if( empty( $_POST['var1'] ) ) {
    die( 
"No se puede ejecutar porque no hay variables GET" );

2º opcion

Usar httacces, no sé como sería googlea
  #14 (permalink)  
Antiguo 23/09/2010, 05:27
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Mostrar html de Mysql en PHP

mil gracias AdrianSeg, voy a intentarlo.

Por cierto el post que nos da Heli0s, es muy bueno voy a estudiarlo en detalle.


gracias a todos!
  #15 (permalink)  
Antiguo 01/12/2010, 23:56
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Editor Wysiwyg en PHP + MYSQL + TynyMCE editor

Cita:
Iniciado por manupalaya Ver Mensaje
Funciona!!

lo que pasaba es que cuando creeis la columna content teneis que decirle VARCHAR y ponerle en el PHPmyAdmin, cuando os pregunta la longitud del campo (Length/Values) por ejemplo 100000


Y además guarda todo los link, columnas, imagenes,...

gracias AdrianSeg
Saben que yo tengo el mismo problema, he cambiado a VARCHAR pero sigue mostrando las etiquetas como <p> o <strong> cuando muestro los datos.
Cual es la solucion?

Gracias de antemano.
  #16 (permalink)  
Antiguo 23/05/2013, 23:14
Avatar de tripexito  
Fecha de Ingreso: enero-2008
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Mostrar html de Mysql en PHP

prueba con la siguiente función PHP
Código PHP:
<?php echo html_entity_decode($datos_bd['columa_con_html']); ?>

Etiquetas: html, mysql
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:08.