Foros del Web » Programando para Internet » PHP »

Fckeditor y comilla simple

Estas en el tema de Fckeditor y comilla simple en el foro de PHP en Foros del Web. Hola a todos. Tengo un formulario que tiene un textarea del fckeditor, y que sube el contenido de este textarea a una base de datos. ...
  #1 (permalink)  
Antiguo 26/06/2006, 04:39
 
Fecha de Ingreso: junio-2006
Mensajes: 46
Antigüedad: 11 años, 5 meses
Puntos: 0
Fckeditor y comilla simple

Hola a todos.

Tengo un formulario que tiene un textarea del fckeditor, y que sube el contenido de este textarea a una base de datos. El problema es que, si el contenido del textarea tiene alguna comilla simple ( ' ) se hace un lio con las comillas de la consulta sql y no actualiza la base de datos. Como puedo arreglarlo?
  #2 (permalink)  
Antiguo 26/06/2006, 05:10
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años
Puntos: 1
hombre.. con un str_replace podrías cambiar esa comilla simple por otro caracter o combinacion de caracteres que no influyesen a la hora de hacer la consulta.. y al mostrar los datos hacer el explode con el paso inverso:

$textoInsertar=str_replace(" ' ", "unacadena", $textoInsertar);

$textoDevuelto= str_replace("unacadena", " ' '",$textoDevuelto);

o algo asi...

aqui una pagina con ejemplos:

http://es.php.net/str_replace
__________________
ALOZORRO v5.0 (ahora en .es)
  #3 (permalink)  
Antiguo 26/06/2006, 05:39
 
Fecha de Ingreso: junio-2006
Mensajes: 46
Antigüedad: 11 años, 5 meses
Puntos: 0
Creo que eso es justo lo que necesito, bastaria con sustituir la comilla simple por una doble comilla simple, pero no me funciona, debo hacer algo mal, pues la consulta sql no se ejecuta, da error.

Código:
$c="update basededatos Set ";
		
	if ($_POST['textocas']){
		$castellano=str_replace(" ' ", "''", $_POST['textocas']);
		$c.="txt='".$castellano."'";
	}
$c.=" where id=".$_POST['ident'];
Puedes decirme que puede estar mal?
  #4 (permalink)  
Antiguo 26/06/2006, 05:46
 
Fecha de Ingreso: junio-2006
Mensajes: 46
Antigüedad: 11 años, 5 meses
Puntos: 0
ya funciona perfecto. El problema era que pegue tu ejemplo en mi codigo directamente y no me dic uenta que habias puesto espacios delante y detras de la comilla simple. Los elimine y ahora me la cambia por doble comilla. La instruccion que me das para volver a reemplazar luego la comilla simple doble por la simple no es necesaria, pues al hacer la consulta sql se pierde una, quedandose como me interesa. Os dejo el codigo definitivo que me funciona. Muchas gracias.

Código:
$c="update basededatos Set ";
		
	if ($_POST['textocas']){
		$castellano=str_replace("'", "''", $_POST['textocas']);
		$c.="txt='".$castellano."'";
	}
				
	$c.=" where id=".$_POST['ident'];
  #5 (permalink)  
Antiguo 26/06/2006, 05:47
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
hola, ¿y por qué no usar addslashes() ?

Código PHP:
if(!empty($_POST['textocas'])){
    
$c="update basededatos Set txt='".addslashes($_POST['textocas'])."' where id='".(int)$_POST['ident']."' LIMIT 1";

__________________
http://www.nosoynadie.net/
  #6 (permalink)  
Antiguo 26/06/2006, 06:07
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años
Puntos: 1
Cita:
ya funciona perfecto. El problema era que pegue tu ejemplo en mi codigo directamente y no me dic uenta que habias puesto espacios delante y detras de la comilla simple.
jeje. si.. los puse para que se viese que había una comilla simple ahi.. porque sino no se distinguia muy bien jeje..

Cita:
addslashes()
que hace esa funcion??
__________________
ALOZORRO v5.0 (ahora en .es)
  #7 (permalink)  
Antiguo 26/06/2006, 06:24
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
según la documentación de php:

addslashes() escapa una cadena insertando barras "\"

tienes más información en http://es.php.net/addslashes. Ciao
__________________
http://www.nosoynadie.net/
  #8 (permalink)  
Antiguo 26/06/2006, 07:14
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 14 años
Puntos: 88
o htmlentities...

Esta función es identica en todo a htmlspecialchars(), excepto que con htmlentities(), todos los caracteres que tengan una entidad equivalente en HTML serán cambiados a esas entidades.

:P

http://cl2.php.net/manual/es/function.htmlentities.php
  #9 (permalink)  
Antiguo 26/06/2006, 09:12
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
Cita:
Iniciado por spider_boy
o htmlentities...
Esta función es identica en todo a htmlspecialchars(), excepto que con htmlentities(), todos los caracteres que tengan una entidad equivalente en HTML serán cambiados a esas entidades.
Cierto, pero creo que para el problema que nos planteaba juanvivo es más adecuado escapar los caracteres no desados que convertirlos (ya que en el caso de ciertos caracteres, por ejemplo la comilla simple, no tienes equivalente html)
__________________
http://www.nosoynadie.net/
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 11:45.