Foros del Web » Programando para Internet » PHP »

Guardar datos de ckeditor en mysql con Php

Estas en el tema de Guardar datos de ckeditor en mysql con Php en el foro de PHP en Foros del Web. hola amigos del foro soy nuevo y tengo una duda me gustaria saber como guardar los datos del editor ckeditor en mi base de datos ...
  #1 (permalink)  
Antiguo 02/04/2012, 15:27
 
Fecha de Ingreso: abril-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Guardar datos de ckeditor en mysql con Php

hola amigos del foro soy nuevo y tengo una duda me gustaria saber como guardar los datos del editor ckeditor en mi base de datos mysql con php e igualmente como los recupero para modificarlos con el ckeditor.....si tienen un ejemplo se los agradeceria muchisimo.....e igual gracias de antemano.....
  #2 (permalink)  
Antiguo 03/04/2012, 00:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Guardar datos de ckeditor en mysql con Php

Cuando descargas CKEditor se incluyen algunos ejemplos de uso, si no te son suficientes, siempre puedes recurrir a la documentación: http://docs.cksource.com/CKEditor_3.x/Developers_Guide

Si tienes algún problema por el idioma, siempre puedes pedirle a san google "ckeditor ejemplo" y llegas a sitios como [B]http://mjcarrascosa.com/probando-ckeditor/[B], donde hay un minitutorial para usarlo.

Aquí en el foro puedes preguntar por soluciones a problemas más concretos, con un código que no te funciona, para todo lo demás... masterca... ahh, no, el buscador!

P.D. Bienvenido a FDW
__________________
- León, Guanajuato
- GV-Foto

Última edición por Triby; 03/04/2012 a las 00:19
  #3 (permalink)  
Antiguo 04/04/2012, 11:08
 
Fecha de Ingreso: abril-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: Guardar datos de ckeditor en mysql con Php

gracias Triby por tu respuesta, pero la documentacion que me diste no resuelve mi problema, el ckeditor si me aparece por eso no hay problema, incluso guarda lo que escribo en la BD lo malo es que lo guarda como encriptado como si estuviera en MD5 mientras que si uso un textarea normal lo guarda bien....por eso quisiera saber si estoy haciendo algo mal o como se guarda lo que escribi en el ckeditor en la BD.
  #4 (permalink)  
Antiguo 04/04/2012, 11:35
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Guardar datos de ckeditor en mysql con Php

Es que no podemos saber si estás haciendo algo mal hasta que muestres el código de tu formulario y cómo lo procesas.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 04/04/2012, 11:51
 
Fecha de Ingreso: abril-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: Guardar datos de ckeditor en mysql con Php

gracias triby otra vez, este es mi codigo y como digo al momento de guardar lo hace pero lo guarda como si estuviera encriptado en MD5 ademas me gustaria saber como puedo recuperar ese valor para editarlo luego



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Cotizador</title>
</style>
</head>
<script type="text/javascript">
function Validar()
{
var nombre = document.formulario.nombre.value;
if(nombre==""){
alert("Debe escribir al menos un nombre para el cotizador...");
return false;
}
}
</script>
<?php
$link="";
include_once("/Applications/MAMP/htdocs/mod_cotizador/clases.php");
$conexion=new Clase_Conexionbd;
$link=$conexion->Conectabd();
session_start();
function formRegistro(){
?>
<form action="cotizador.php" name="formulario" method="post" enctype="multipart/form-data" onSubmit="return Validar()">
Nombre:
<input type="text" name="nombre" size="20" maxlength="20" /><br />
Precio:
<input type="text" name="precio" size="7" maxlength="20" /><br />
imagen:
<input type="file" name="imagen" /><br />
Descripcion:
<textarea name="descripcion" id="descripcion"></textarea>
<?php
include("ckeditor/ckeditor.php");
$CKEditor = new CKEditor();
$CKEditor->basePath = 'ckeditor/';
$config['toolbar'] = "Full";
/*$initialValue = mysql_query("SELECT descripcion FROM cotizador") or die ("Error en la consulta");*/
$CKEditor->replace("descripcion");
?><br>
<script type="text/javascript">
CKEDITOR.config.width = 830
</script>
<input name="Reset" type="reset" value="Regresar" />
<input type="submit" name="botEnviarImagen" value="Crear Cotizador" />
</form>
<?php
}
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST["botEnviarImagen"])) {
$nombre = $_POST["nombre"];
$descripcion= $_POST["descripcion"];
$precio = $_POST["precio"];
$nameimagen = $_FILES['imagen']['name'];
$tmpimagen = $_FILES['imagen']['tmp_name'];
$extimagen = pathinfo($nameimagen);
$ext = array("bmp","gif","jpg","png");
$imagen = "imagenes/".md5($name . time()).'.'.$extimagen['extension'];


if(is_uploaded_file($tmpimagen)){

if(array_search($extimagen['extension'],$ext)){

copy($tmpimagen, $imagen);
echo '<img src="'.$imagen.'" /><br>';

}

else {
$mensaje = "Solo se permiten imágenes con formato bmp, jpg, gif o png...";
print "<script>alert('$mensaje')</script>";
}

}

// Hay campos en blanco
if ($nameimagen==NULL){
$imagen=$nameimagen;
}else{
$imagen=$imagen;
}
$query = 'INSERT INTO cotizador (nombre, precio, imagen, descripcion)
VALUES (\''.$nombre.'\',\''.$precio.'\',\''.$imagen.'\',\ ''.$descripcion.'\')';
mysql_query($query) or die(mysql_error());
$mensaje = "Datos Guardados...";
print "<script>alert('$mensaje')</script>";

}else{
formRegistro();
}
?>

<body>
</body>
</html>
  #6 (permalink)  
Antiguo 04/04/2012, 15:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Guardar datos de ckeditor en mysql con Php

Antes de guardar en la base de datos haz esto:

Código PHP:
Ver original
  1. echo '<pre>';
  2. var_dump(htmlentities($_POST['descripcion']));
  3. echo '</pre>';

Se ve la información como esperas?
Si es así, entonces muestra qué haces para guardar en base de datos.

Ahora, para cargar el valor inicial cuando estás editando:
Código PHP:
Ver original
  1. <?php
  2. // Primero lees el registro completo
  3. $res = mysql_query("SELECT * FROM cotizador WHERE {aquí va un filtro!}") or die ("Error en la consulta:" . mysql_error());
  4. if(mysql_num_rows($res) > 0) {
  5.     // El registro existe, lo leemos
  6.     $row = mysql_fetch_assoc($res);
  7.     $descripcion = $row['descripcion'];
  8. } else {
  9.     // El registro no existe... es nuevo?
  10.     $descripcion = '';
  11. }
  12. // Creas el campo, con su valor inicial
  13. ?>
  14. <textarea name="descripcion" id="descripcion"><?php echo $descripcion; ?></textarea>
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 04/04/2012, 15:31
 
Fecha de Ingreso: abril-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: Guardar datos de ckeditor en mysql con Php

de nuevo gracias por la respuesta y muchisimas gracias por la ayuda...esto es muy importante para mi....bueno el resultado que me devuelve es este:

string(28) "<p>
hola</p>
"
y esto significa que????? disculpa la ignorancia...

y gracias por el codigo de cargar el valor inicial....muchas gracias
  #8 (permalink)  
Antiguo 04/04/2012, 15:39
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Guardar datos de ckeditor en mysql con Php

Bueno, eso significa que CKEditor te está devolviendo el resultado correctamente, ahora hay que ver la estructura de tu tabla y cómo guardas los datos.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 04/04/2012, 15:56
 
Fecha de Ingreso: abril-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: Guardar datos de ckeditor en mysql con Php

bueno la estructura de mi tabla es la siguiente y como guardo los datos esta mas arriba en el codigo que anteriormente puse...

CREATE TABLE `cotizador` (
`id_cotizador` int(10) NOT NULL,
`nombre` varchar(25) COLLATE utf8_bin NOT NULL,
`descripcion` varchar(200) COLLATE utf8_bin NOT NULL,
`precio` float NOT NULL,
`imagen` varchar(250) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id_cotizador`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

una pregunta que tengo es que por ejemplo este es el texto que escribo en el ckeditor :"prueba de texto", pero en la base se guarda lo siguiente: 3c703e0d0a0970727565626120646520746578746f3c2f703e 0d0a, y cuando uso el codigo que me pasaste anteriormente para cargar el contenido de la base en el ckeditor me carga el contenido de forma correcta es decir "prueba de texto" asi como lo escribi, mi pregunta es si asi debe funcionar el ckeditor....gracias
  #10 (permalink)  
Antiguo 04/04/2012, 18:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
No es por el editor, sino por el juego de caracteres usado utf8_bin
  #11 (permalink)  
Antiguo 05/04/2012, 00:07
 
Fecha de Ingreso: abril-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: Guardar datos de ckeditor en mysql con Php

gracias triby en serio tu ayuda me ha servido de mucho....entonces cual juego de caracteres debo usar para que guarde correctamentamente...
  #12 (permalink)  
Antiguo 05/04/2012, 12:19
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Guardar datos de ckeditor en mysql con Php

Con utf8_bin entiendo que se guarda todo en binario y, por tanto, las comparaciones de texto se hacen por el valor binario de cada caracter en la cadena, ejemplo:

Ä = A
Ö = O
Ü = u

La comparación en binario evaluará falso para las 3, en cambio, si usas utf8_general_ci, evaluará verdadero.

Supongo que la mayor diferencia entre los juegos de caracteres estará en estas comparaciones y no tanto en la capacidad para almacenar correctamente los textos, incluyendo tildes y otros caracteres especiales.

Cuál debieras elegir?, bueno, eso ya depende de tus preferencias y si vas a tener funciones de búsqueda o no. En todo caso, con utf8_general_ci vas bien para propósitos generales.
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 05/04/2012, 12:25
 
Fecha de Ingreso: abril-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: Guardar datos de ckeditor en mysql con Php

creo que no me cansare de agradecerte por la ayuda que me has prestado estas en lo correcto era el juego de caracteres lo cambie por utf-8_unicode_ci y funciono aunque probare con el que me dices a ver que tal ......y una pregunta mas es normal tambien que el ckeditor guarde por ejemplo si escribo: hola, lo guade asi:"<p>hola</p>" (sin las comillas solo entre etiquetas p) en la base de datos...
  #14 (permalink)  
Antiguo 05/04/2012, 12:43
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Guardar datos de ckeditor en mysql con Php

Claro que es normal, CKEditor es un editor de texto enriquecido y se vale de códigos HTML para aplicar formatos.
__________________
- León, Guanajuato
- GV-Foto
  #15 (permalink)  
Antiguo 05/04/2012, 14:09
 
Fecha de Ingreso: abril-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: Guardar datos de ckeditor en mysql con Php

me ha servido de mucho tu ayuda triby ya probe los codigos y los consejos que me diste y todo funciono ok...gracias de nuevo por todo y por aqui estare de nuevo no solo para pedir ayuda (que seguro sucedera jeejeje) sino tambien para aportar..... muchas gracias...y gracias otra vez triby por la ayuda.....
  #16 (permalink)  
Antiguo 22/04/2012, 02:57
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Guardar datos de ckeditor en mysql con Php

Para no abrir un tema nuevo y viendo que este es reciente voy a consultar por aquí. La consulta tiene que ver con CKeditor PHP y MySql.

Resulta que estoy implementando CKeditor en una web personal. Donde el texto generado se guarda en una base de datos. Si se carga la página de nuevo el textarea carga los datos de la base de nuevo y lo muestra dentro del textarea. Hasta aquí va todo bien.

Lo curioso es que al cargar los datos de la base me quita la url de los enlaces.

haciendo un var_dump me aparece esto que trae de la base de datos:
Código:
<p>
<a href=\"http://www.dominio.es\">http://www.dominio.es</a></p>
Pero en cambio el editor me lo muestra así:
Código:
<p>
<a href="\ ">http://www.dominio.es</a></p>
Lo edito, se guarda de nuevo en la base de datos y al recuperarlo otra vez me lo reemplaza el Ckeditor.

Os ha pasado esto antes o sabéis de que puede ser?, hay alguna forma de desactivar el "replace" que hace por defecto ya que me interesa trabajarlo yo en php antes de meterlo en la BD y cambiar solo las caracteres que necesite.

Gracias de antemano y un saludo,

-----------
Este mensaje lo puse ayer en el foro de javascript también, ya que utilice el modo PHP o javascript hace lo mismo.
http://www.forosdelweb.com/f127/cked...nlaces-988599/
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #17 (permalink)  
Antiguo 22/04/2012, 14:00
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Guardar datos de ckeditor en mysql con Php

Uncontroled_Duck, creo que el problema puede ser por las comillas mágicas, supongo que en todas las comillas te agrega una diagonal antes y el problema no estaría solamente en los enlaces, sino siempre que uses comillas.

Si van por ahí los tiros, la solución es muy sencilla, antes de guardar en base de datos:
Código PHP:
Ver original
  1.     // Comillas mágicas activas, eliminas el efecto:
  2.     $codigo = stripslashes($_POST['codigo']);
  3. } else {
  4.     $codigo = $_POST['codigo'];
  5. }
__________________
- León, Guanajuato
- GV-Foto
  #18 (permalink)  
Antiguo 23/04/2012, 09:20
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Guardar datos de ckeditor en mysql con Php

Pues Triby has dado en el clavo!!

Me había centrado en ver si era algún replace que hacía javascript y ni se me pasó por la cabeza que podía ser esto.

Gracias por la ayuda,

Un saludo,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight

Etiquetas: ckeditor, 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




La zona horaria es GMT -6. Ahora son las 14:36.