Practicando con PHP y mySQL [Ayuda/consejo]

Iniciado por anonimo12121, 1 Abril 2012, 18:04 PM

0 Miembros y 1 Visitante están viendo este tema.

anonimo12121

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";
?>
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

javirk

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!

anonimo12121

bien  :) añado a marcadores para cuando sepa un poco más hacerlo como tu dices :) gracias tio.
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746