Foros del Web » Programando para Internet » PHP »

Problema formulario con mysql

Estas en el tema de Problema formulario con mysql en el foro de PHP en Foros del Web. Buenas, he estado buscando algun error similar al mio pero no lo he encontrado, por lo tanto a ver si alguien me pudiera ayudar. Tengo ...
  #1 (permalink)  
Antiguo 24/10/2008, 07:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Problema formulario con mysql

Buenas, he estado buscando algun error similar al mio pero no lo he encontrado, por lo tanto a ver si alguien me pudiera ayudar.
Tengo un formulario el cual los datos van a la BD, el envio se hace correctamente, pero el problema viene cuando en alguno de los campos pongo una comilla ya sea simple o doble, entonces me aparece un error de sintasis en mysql. En la BD la tengo con latin1_spanish_ci , deberia cambiarla o es un error en el codigo de la pagina??

Un saludo
  #2 (permalink)  
Antiguo 24/10/2008, 08:07
 
Fecha de Ingreso: septiembre-2003
Mensajes: 54
Antigüedad: 20 años, 7 meses
Puntos: 2
Respuesta: Problema formulario con mysql

verifica los datos antes de procesarlo en la BD con str_replace()
str_replace("\'","'",$mensaje)

o tambien la funcion
mysql_escape_string()

etc...
__________________
Kame Kame AH

Última edición por GoKu; 24/10/2008 a las 08:15
  #3 (permalink)  
Antiguo 24/10/2008, 08:25
Avatar de spectre  
Fecha de Ingreso: octubre-2008
Ubicación: Cuba
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema formulario con mysql

bien puedes usar las funciones addslashes y stripslashes o bien incluir en la consulta el caracter de escape (\) a las comillas y demas carcateres que pueden dar error.

otra opcion en el php.ini la opcion magic_quotes tambien puedes activar y no tienes que preocuparte mas por eso
  #4 (permalink)  
Antiguo 24/10/2008, 08:38
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema formulario con mysql

Gracias por responder, pero? donde deberia de ponerlo exactamente en el formulario?

deberia poner:

mysql_escape_string($_POST);

para que asi escape todos los campos del formulario? o no es asi??
  #5 (permalink)  
Antiguo 24/10/2008, 08:45
 
Fecha de Ingreso: septiembre-2003
Mensajes: 54
Antigüedad: 20 años, 7 meses
Puntos: 2
Respuesta: Problema formulario con mysql

cuando envies los datos pones.

$ejemplo = addslashes($_POST['texto']);
mysql_query("INSERT INTO tabla (texto) VALUES ('$ejemplo')");

o una funcion:

function Verificacion($texto)
{
$texto= htmlspecialchars($texto);
$texto= addslashes($texto);
$texto= str_replace("\'", "''", $texto);
$texto = str_replace("--", "", $texto);
// puedes añadir mas...
return $texto;
}

y despues

$ejemplo = Verificacion($_POST['texto']);
mysql_query("INSERT INTO tabla (texto) VALUES ('$ejemplo')");
__________________
Kame Kame AH
  #6 (permalink)  
Antiguo 24/10/2008, 08:47
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema formulario con mysql

Cita:
Iniciado por spectre Ver Mensaje
bien puedes usar las funciones addslashes y stripslashes o bien incluir en la consulta el caracter de escape (\) a las comillas y demas carcateres que pueden dar error.

otra opcion en el php.ini la opcion magic_quotes tambien puedes activar y no tienes que preocuparte mas por eso

Lo he probado en localhost y ahi si que escapa la ' y la sustituye por \, pero en el servidor no lo hace... probare en cambiar el php.ini

Gracias
  #7 (permalink)  
Antiguo 24/10/2008, 08:58
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema formulario con mysql

Se puede modificar el php.ini atraves del htacces???

si se puede como??
  #8 (permalink)  
Antiguo 24/10/2008, 09:10
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema formulario con mysql

Gracias por todo, ya lo tengo solucionado, al final en el htacces añadiendo

php_flag magic_quotes_gpc on


  #9 (permalink)  
Antiguo 24/10/2008, 09:18
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Problema formulario con mysql

Beuno... pues de poder se peude:

http://usphp.com/manual/en/security.....disabling.php

Lee los comentarios que verás ahí...

Pero (siempre hay un pero) no deberías programar teniendo en cuenta magic_quotes, esa directiva tiende a desaparecer, es mas, en php 6 no estará.

Referencia
http://www.php.net/magic_quotes

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #10 (permalink)  
Antiguo 24/10/2008, 09:19
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Problema formulario con mysql

Mientras que escribía... lo solucionaste, bien por ti
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #11 (permalink)  
Antiguo 24/10/2008, 15:40
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Problema formulario con mysql

A manera de aclaración mysql_escape_string(), ya esta obsoleta es mejor usar mysql_real_escape_string()


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
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 04:55.