Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: nobo en 1 Marzo 2012, 22:30 pm



Título: Se puede optimizar este codigo ?
Publicado por: nobo en 1 Marzo 2012, 22:30 pm
Pues eso... Como podria optimizar este codigo?

Código
  1. $error = null;
  2. $direccion = null;
  3. $poblacion = null;
  4. $provincia = null;
  5. $postal = null;
  6. $nombre = null;
  7. $nick = null;
  8.    $pass = null;
  9.    $password = null;
  10.    $email = null;
  11.    $mail = null;
  12.    $telefono = null;
  13.    $telefono2 = null;
  14.  
  15. if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/alta_usuario.php' && ($_POST != null))
  16. {
  17. $direccion = $_POST["strDireccion"];
  18. $poblacion = $_POST["strPoblacion"];
  19. $provincia = $_POST["strProvincia"];
  20. $postal = $_POST["intCpostal"];
  21. $nombre = $_POST["strNombre"];
  22. $nick = $_POST["strNick"];
  23.    $error = false; //Indica si hay un error
  24.    $pass = $_POST["strPassword"];
  25.    $password = $_POST["password"];
  26.    $email = $_POST["strEmail"];
  27.    $mail = $_POST["mail"];
  28.    $telefono = $_POST["intNtelf"];
  29.    $telefono2 = $_POST["telefono"];
  30.  
  31.      if($pass!=$password)
  32.      {
  33.         echo "Las contraseñas no coinciden";
  34.         $error = true;
  35.      }
  36.      if($email!=$mail)
  37.      {
  38.         echo "El email no coincide";
  39.         $error = true;
  40.      }
  41.  
  42.      if($telefono!=$telefono2)
  43.      {
  44.         echo "Los telefonos no coinciden";
  45.         $error = true;
  46.      }
  47.  
  48.      $checkuser = comprobaruser($_POST["strNick"]);
  49.  if ($checkuser != 0)
  50.      {
  51.        header('Location: alta_usuariorepetido.php');
  52.      }
  53.  
  54.      $checkmail = comprobarmail($_POST["strEmail"]);
  55.  if ($checkmail != 0)
  56.      {
  57.        header('Location: alta_emailrepetido.php');    
  58.      }
  59.  
  60.     if ($error != true)
  61.     {
  62.        $insertSQL = sprintf("INSERT INTO tblusuario (strNombre, strEmail, intActivo, strPassword, strDireccion, strNick, intCpostal, strProvincia, strPoblacion, intNtelf) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
  63.                       GetSQLValueString($_POST['strNombre'], "text"),
  64.                       GetSQLValueString($_POST['strEmail'], "text"),
  65.                       GetSQLValueString($_POST['intActivo'], "int"),
  66.                       GetSQLValueString($_POST['strPassword'], "text"),
  67.                       GetSQLValueString($_POST['strDireccion'], "text"),
  68.                       GetSQLValueString($_POST['strNick'], "text"),
  69.                       GetSQLValueString($_POST['intCpostal'], "int"),
  70.                       GetSQLValueString($_POST['strProvincia'], "text"),
  71.                       GetSQLValueString($_POST['strPoblacion'], "text"),
  72.                       GetSQLValueString($_POST['intNtelf'], "int"));
  73.        mysql_select_db($database_conexionzulo, $conexionzulo);
  74.        mysql_query($insertSQL, $conexionzulo);
  75. header('Location: alta_ok.php');
  76.    }
  77.  
  78. }


Título: Re: Se puede optimizar este codigo ?
Publicado por: WHK en 2 Marzo 2012, 13:31 pm
$password = $_POST["password"];
Porque no usas la variable $_POST directamente en ves de pasarlo a otras variables?

GetSQLValueString($_POST['strNombre'], "text") es mejor que mysql_real_escape_string() ?


Título: Re: Se puede optimizar este codigo ?
Publicado por: nobo en 2 Marzo 2012, 22:44 pm
Para luego poder compararlas, no?

Pues no se si es mejor o no.. :S

Por eso lo pongo aqui para ver que es mejor o como hacerlo mejor...


Título: Re: Se puede optimizar este codigo ?
Publicado por: Shell Root en 3 Marzo 2012, 18:46 pm
Las puedes comparar si usar la variable, es decir,
Código
  1.  
  2. if( $_POST["strPassword"] != $_POST["password"] ){
  3.   /* SNIP */
  4.  
  5. if( $_POST["strEmail"] != $_POST["mail"] ){
  6.  
  7.  


Título: Re: Se puede optimizar este codigo ?
Publicado por: nobo en 4 Marzo 2012, 15:00 pm
Pues si! Teneis razon ;)

Las otras si las tengo que dejar, no? Las que estan null...
Las uso para una vez mandado el form, si hay errores imprimir por pantalla los values de cada campo.

En cuanto al GetSQLValueString.. Lo dejo?


Título: Re: Se puede optimizar este codigo ?
Publicado por: WHK en 5 Marzo 2012, 13:45 pm
No sabemos que hace esa función y si php.net el creador de php te dice que uses mysql_real_escape_string creo que es por algo, si haces algo que no te dice php que hagas entonces puedes correr riesgos de inyección.

Dale un vistazo a este post:
http://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html


Título: Re: Se puede optimizar este codigo ?
Publicado por: nobo en 5 Marzo 2012, 22:41 pm
OK! Perfecto gracias !! :D

Y en cuanto al codigo hay algo mas que pueda hacer para que no sea "spaguetti" xDDD