Foros del Web » Programando para Internet » PHP »

Problema con magic quotes

Estas en el tema de Problema con magic quotes en el foro de PHP en Foros del Web. Hola a todos...no se como solucionar mi problema con magic quotes activado. Como he dicho en mi servidor está en ON magic quotes y cuando ...
  #1 (permalink)  
Antiguo 19/06/2006, 02:33
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 12 años, 11 meses
Puntos: 1
Problema con magic quotes

Hola a todos...no se como solucionar mi problema con magic quotes activado.
Como he dicho en mi servidor está en ON magic quotes y cuando intento insertar en mysql un texto con comillas simplemente desaparece el texto a partir de las comillas y sólo se inserta en la BD el texto antes de escribir comillas.
No es posible desactivar magic quotes, mi servidor de pago me dice que lo haga en tiempo de ejecución. He visto el manual de php pero no se cómo debo usar este codigo:

Código:
<?php
if (get_magic_quotes_gpc()) {
    function stripslashes_profundo($valor)
    {
        $valor = is_array($valor) ?
                    array_map('stripslashes_profundo', $valor) :
                    stripslashes($valor);

        return $valor;
    }

    $_POST = array_map('stripslashes_profundo', $_POST);
    $_GET = array_map('stripslashes_profundo', $_GET);
    $_COOKIE = array_map('stripslashes_profundo', $_COOKIE);
}
?>
También he visto que el uso de stripslashes() elimina el problema pero no para insertar el texto en la base de datos.
Este es mi código para insertar en la base de datos el texto:

Código:
//nos conectamos a mysql
	$cnx = conectar ();
	

	$campos = "titulo,texto";
	$valores .= "'".$_POST['titulo']."',";
	$valores .= "'".$_POST['texto']."'";
		 
	$sql = "INSERT INTO cuentos ($campos) VALUES($valores)";
	$res = mysql_query($sql);
	
	mysql_close($cnx);
El texto viene de un formulario normal y corriente.
Agradecería cualquier ayuda porque realmente no se que hacer....
  #2 (permalink)  
Antiguo 19/06/2006, 03:20
 
Fecha de Ingreso: diciembre-2003
Mensajes: 204
Antigüedad: 14 años
Puntos: 2
mria haz una cosa, en vez de ejecutar la consulta hazle un echo y luego posteas aqui el resultado, para ver que es lo que esta pasando
  #3 (permalink)  
Antiguo 20/06/2006, 04:38
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 12 años, 11 meses
Puntos: 1
Ya he solucionado el problema...lo que sucedía era que al insertar el texto en la base de datos lo hacía directamente y sin usar striplashes. No es necesario desactivar en tiempo de ejecución magic quotes, ni soluciones más raras que he encontrado en la red. Os pongo la solución a mis males:

Código PHP:
    $cnx conectar ();
    

    
$campos "titulo,texto";
    
$valores .= "'".stripslashes($_POST['titulo'])."',";
    
$valores .= "'".stripslashes($_POST['texto'])."'";

    
$sql "INSERT INTO cuentos($campos) VALUES($valores)";
    
$res mysql_query($sql);
    
    
mysql_close($cnx); 
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 00:29.