Problemas con comillas y slashes que se anidan !!!

Iniciado por Lupin, 20 Agosto 2011, 00:55 AM

0 Miembros y 1 Visitante están viendo este tema.

Lupin

Una consulta muchachos , resulta que al poner comillas  "Hola" me sale al editar /"Hola/" y al editar de  nuevo  ///"Hola///"  y asi sucesivamente  hasta que se llena mi campo de la tabla :-\.
Tengo mi base de datos en mysql.
¿conocen laguna funcion que me evite anidar los "/" ?
Uso htmlentities
Gracias

Shell Root

Muéstranos todo el código, no creo que solo sea esa función.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Nakp

no guardes con htmlentities, usa mysql_real_escape_string()
Ojo por ojo, y el mundo acabará ciego.

Lupin

la verdad estoy ultilizando el editor de texto "Tiny_mce"
Rescato el texto en un formulario  de esta forma
Código (php) [Seleccionar]

<td>Texto:</td><td><textarea rows="15" cols="54"
     name="texto"  /><?php echo htmlentities($texto); ?>



y lo guardo con esto:


Código (php) [Seleccionar]

$titulo2 = protege_entradas(substr($titulo,0,100));
$encabezado2 = protege_entradas(substr($encabezado,0,348));
$texto2 = $texto
$sql="UPDATE Articulos SET titulo='$titulo2',".
         "encabezado='$encabezado2', texto='$texto2', fecha=now()".
          "WHERE id_articulo='$id'";

$result = mysql_query($sql);



Y de esta manera se me van acumulando los slash....por otro lado las entradas en "tiny_mce" no la puedo proteger porque se me acumula un monton de datos que rabasan el campo de mi tabla.... ¿algun idea? amigos  :-[ :-[ :-[
Probare con  mysql_real_escape_string
Gracias

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Lupin

Solo una proteccion basica !!!
Código (php) [Seleccionar]

function protege_entradas($texto) {
$texto = htmlentities ($texto);
$texto = htmlspecialchars ($texto);
$texto = trim ($texto);
return $texto;


Pero el caso es que no lo uso al introducir datos con el "tiny_mce".

Nakp

pues guarda solo usando el mysql_real_scape_string() y al mostrar los datos (no al guardar) utiliza el htmlentities ENT_QUOTES y hasta ahí :P no necesitas mas
Ojo por ojo, y el mundo acabará ciego.

Lupin

Jeje Uff recien aparezco por aqui
Gracias por su ayuda muchachos pero solucione el asunto con 
stripslashes para mostrar
y addslashes para actualizar la base de datos (update)
La verdad estaba leyendo acerca de mysql_real_scape_string()  y no lo llege a entender  ;D

Carluís

Bueno quiero dar una función que seguramente te será útil, estoy de acuerdo con Nakp
Cita de: Nakp en 23 Agosto 2011, 17:32 PM
pues guarda solo usando el mysql_real_scape_string() y al mostrar los datos (no al guardar) utiliza el htmlentities ENT_QUOTES y hasta ahí :P no necesitas mas


Debería utilizar un código como el siguiente:

function Security($_Cadena) {
$_Cadena = htmlspecialchars(trim(addslashes(stripslashes(strip_tags($_Cadena)))));
$_Cadena = str_replace(chr(160),'',$_Cadena);
return mysql_real_escape_string($_Cadena);
}
Desarrollo Web, Blogging, Diseño: http://onsoni.blogspot.com