Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (html4strict) [Seleccionar]
<html>
<head>
   <title>Login</title>
</head>

<body>
<?php
?>

<!-- Start! By Xafi -->
<form action="conectar.php" method="post">
<b>Nick:</b><input type="text" name="nick"><br>
<b>Pass:</b><input type="password" name="pass">
<input type="submit" name="conectar" value="Consultar DB">
</form>

<!-- End! By Xafi -->

</body>
</html>


conectar.php
Código (php) [Seleccionar]
<?php
function  
Conectar(){
$link =mysql_connect("localhost","root","");
mysql_select_db("test",$link);
return $link;
}
$conexion=Conectar();
$busqueda="select * from cuentas where name=\"".$_POST['nick']."\"";
$consulta=mysql_query($busqueda,$conexion);
$extraccion=mysql_fetch_array($consulta);
if($extraccion['name']== $_POST['nick']){
mysql_free_result($consulta);
$busqueda="select * from cuentas where pass=\"".$_POST['pass']."\"";
$consulta=mysql_query($busqueda,$conexion);
$extraccion=mysql_fetch_array($consulta);
if($extraccion['pass']== $_POST['pass'])echo "Bienvenido ".$_POST['nick'] ." se ha identificado correctamente";
else echo "Datos no encontrado en la Base de Datos.";
}
else echo "Datos no encontrado en la Base de Datos.";
mysql_free_result($consulta);
if(mysql_close()==true) echo "<br>Conexión cerrada";
else "<br>No se pudo cerrar la conexión";
?>
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 (php) [Seleccionar]
$busqueda="select * from cuentas where name=\"".$_POST['nick']."\"";

Yo pondría par evitar inyección SQL:
Código (php) [Seleccionar]
$nick = $_POST['nick'];
$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.