Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/06/2011, 10:41
Blashak
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Utilizar mysql_real_escape_string()

realice unas prueba segun el enlace que me pasaste y el contenido te lo guarda igual sin modificarlo.

Código PHP:
Ver original
  1. $ccontenido = "' OR ''='";
  2.  
  3.  
  4. echo $ccontenido;
  5. $con = mysql_connect("localhost", "", "") or die ("no se puede establecer la conexion con el servidor");
  6.  
  7. $sdb = mysql_select_db('prueba', $con);
  8.  
  9. $stb = sprintf("SELECT * FROM webs where Usuario = '%s'",
  10.             mysql_real_escape_string($ccontenido));
  11. $resultado = mysql_query($stb, $con) or die (mysql_error());
  12.  
  13. //este echo me printa por pantalla \' OR \'\'=\' . esto esta correcto
  14. echo sprintf('%s', mysql_real_escape_string($ccontenido));
  15.  
  16.  
  17. $sql = sprintf("INSERT INTO webs (Usuario) VALUES ('%s')",
  18.        mysql_real_escape_string($ccontenido));
  19.  
  20. $resultado = mysql_query($sql, $con) or die (mysql_error());

el echo que hago despues de hacer la consulta me printa por pantalla \' OR \'\'=\' . que esto estaria correcto.

pero el insert que realizo me guarda la variable en la bd sin modificacion.
resultado bd:
' OR ''='
no tendria que guardarlo de esta manera.
\' OR \'\'=\'

ya que después cuando quiera consultar datos no estará limpio.

Saludos