Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/07/2013, 11:57
Avatar de alfredox91
alfredox91
 
Fecha de Ingreso: noviembre-2012
Ubicación: Venezuela-Turmero- Aragua
Mensajes: 17
Antigüedad: 12 años
Puntos: 0
Pregunta Como ¿implemento correctamente esta función?

buenas, compañeros del foro soy novato en la programación php y hace unos meses que vengo desarrollando un sitio web para mi proyecto en el cual diseñe una sección php para un formulario de registro, recientemente me empece a instruir en lo que son los ataques inyección sql ya que son los mas comunes he investigando encontré que la manera mas sencilla para un novato como yo es usar la función mysql_real_escape_string, por lo que he entendido debo declararla antes de cada variable en la consulta.

este es el código original del formulario

<?php


@$nombre=$_POST['nombre'];

@$CI=$_POST['CI'];

@$telefono=$_POST['telefono'];

@$edad=$_POST['edad'];

@$direccion=$_POST['direccion'];

@$profesion=$_POST['profesion'];

@$trabaja=$_POST['trabaja'];


if ($nombre!= "" && $CI!= "" && $telefono!= "" && $edad!= "" && $direccion!= "" && $profesion!= "" && $trabaja!="" )

{

mysql_connect("servidor","usuario","pass");

mysql_select_db("nombre bsd");


// Paso 2: Hacemos la consulta a la Tabla por el usuario
$busqueda= mysql_query("SELECT CI FROM habitantes WHERE CI='$CI'");


// Paso 3: vemos si hubo coincidencias
if(mysql_num_rows($busqueda)>0) { // ó " !=0 " como se quiera ver
// Inciso a:
echo "El numero de cedula ya esta registrado. Por favor intente con otro.<br>";
echo "<a href=\"javascript:history.back()\">Regresar</a>";
} else

{

mysql_query("INSERT INTO habitantes(nombre,CI,telefono,edad,direccion,profe sion,trabaja) VALUES( '$nombre', '$CI', '$telefono', '$edad', '$direccion', '$profesion', '$trabaja')");

echo "$CI ha sido registrado.";

}
}

?>


Y ESTE ES EL CÓDIGO APLICANDO DICHA FUNCIÓN


<?php


@$nombre=$_POST['nombre'];

@$CI=$_POST['CI'];

@$telefono=$_POST['telefono'];

@$edad=$_POST['edad'];

@$direccion=$_POST['direccion'];

@$profesion=$_POST['profesion'];

@$trabaja=$_POST['trabaja'];


if ($nombre!= "" && $CI!= "" && $telefono!= "" && $edad!= "" && $direccion!= "" && $profesion!= "" && $trabaja!="" )

{

mysql_connect("servidor","usuario","pass");

mysql_select_db("nombre bsd");


// Paso 2: Hacemos la consulta a la Tabla por el usuario
$busqueda= mysql_query("SELECT CI FROM habitantes WHERE CI='$CI'");


// Paso 3: vemos si hubo coincidencias
if(mysql_num_rows($busqueda)>0) { // ó " !=0 " como se quiera ver
// Inciso a:
echo "El numero de cedula ya esta registrado. Por favor intente con otro.<br>";
echo "<a href=\"javascript:history.back()\">Regresar</a>";
} else

{

mysql_query("INSERT INTO habitantes(nombre,CI,telefono,edad,direccion,profe sion,trabaja) VALUES(mysql_real_escape_string '$nombre',mysql_real_escape_string '$CI',mysql_real_escape_string '$telefono',mysql_real_escape_string '$edad',mysql_real_escape_string '$direccion',mysql_real_escape_string '$profesion',mysql_real_escape_string '$trabaja')");

echo "$CI ha sido registrado.";

}
}

?>

mi pregunta es si aplique correctamente el mysql_real_escape_string dentro del código, gracias de antemano.