Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: anonimo12121 en 1 Abril 2012, 18:04 pm



Título: Practicando con PHP y mySQL [Ayuda/consejo]
Publicado por: anonimo12121 en 1 Abril 2012, 18:04 pm
Hola buenas estoy empezando con PHP y mySQL y la verdad que me esta costando quería saber que os parece este code que hice si esta bien hecho o se debería de hacer de otra manera o lo que no debería de  haber hecho.
login.php
Código
  1. <html>
  2. <head>
  3.   <title>Login</title>
  4. </head>
  5.  
  6. <body>
  7. <?php
  8. ?>
  9. <!-- Start! By Xafi -->
  10. <form action="conectar.php" method="post">
  11. <b>Nick:</b><input type="text" name="nick"><br>
  12. <b>Pass:</b><input type="password" name="pass">
  13. <input type="submit" name="conectar" value="Consultar DB">
  14. </form>
  15.  
  16. <!-- End! By Xafi -->
  17.  
  18. </body>
  19. </html>

conectar.php
Código
  1. <?php
  2. function  Conectar(){
  3. $link =mysql_connect("localhost","root","");
  4. mysql_select_db("test",$link);
  5. return $link;
  6. }
  7. $conexion=Conectar();
  8. $busqueda="select * from cuentas where name=\"".$_POST['nick']."\"";
  9. $consulta=mysql_query($busqueda,$conexion);
  10. $extraccion=mysql_fetch_array($consulta);
  11. if($extraccion['name']== $_POST['nick']){
  12. mysql_free_result($consulta);
  13. $busqueda="select * from cuentas where pass=\"".$_POST['pass']."\"";
  14. $consulta=mysql_query($busqueda,$conexion);
  15. $extraccion=mysql_fetch_array($consulta);
  16. if($extraccion['pass']== $_POST['pass'])echo "Bienvenido ".$_POST['nick'] ." se ha identificado correctamente";
  17. else echo "Datos no encontrado en la Base de Datos.";
  18. }
  19. else echo "Datos no encontrado en la Base de Datos.";
  20. mysql_free_result($consulta);
  21. if(mysql_close()==true) echo "<br>Conexión cerrada";
  22. else "<br>No se pudo cerrar la conexión";
  23. ?>


Título: Re: Practicando con PHP y mySQL [Ayuda/consejo]
Publicado por: javirk en 1 Abril 2012, 18:17 pm
Hola, lo primero que tienes que hacer es no permitir que entren caracteres extraños, mírate algo sobre inyección SQL. Además, yo particularmente soy muy amigo de pasar todos los $_POST a una variable.

Tú tienes:
Código
  1. $busqueda="select * from cuentas where name=\"".$_POST['nick']."\"";

Yo pondría par evitar inyección SQL:
Código
  1. $nick = $_POST['nick'];
  2. $busqueda = "SELECT * FROM cuentas WHERE name='%s'", mysql_real_escape_string($nick);

Haría lo mismo con todos los SELECT.

Otra cosa, te recomendaría que si vas a hacer algo con usuarios guardaras su contraseña cifrada en md5, busca por google que es fácil, y así cuando vas a comparar la contraseña ingresada y la guardada tuvieras que comparar el md5 de la contraseña ingresada.

Un saludo!


Título: Re: Practicando con PHP y mySQL [Ayuda/consejo]
Publicado por: anonimo12121 en 1 Abril 2012, 19:07 pm
bien  :) añado a marcadores para cuando sepa un poco más hacerlo como tu dices :) gracias tio.