Cita:
Iniciado por pato12 entrar.php
Código PHP:
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='username';
$dbuserpass='password';
$dbname='database';
session_start();
// Conectar a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');
if ($_POST['username']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$password=$_POST['password'];
if ($password==NULL) {
echo "La password no fue enviada";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Login incorrecto";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
}
}
}
El segundo SELECT puedes quitarlo y quedaría asi;
Código PHP:
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='username';
$dbuserpass='password';
$dbname='database';
session_start();
// Conectar a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');
if ($_POST['username']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$password=$_POST['password'];
if ($password==NULL) {
echo "La password no fue enviada";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Login incorrecto";
}else{
$_SESSION["s_username"] = $data['username'];
echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
}
}
}
Cita:
Iniciado por drbit Pato, te recomiendo que lo asegures un poco tiene muchos puntos flojos en seguridad. A grandes razgos:
Código:
<?
if(file_exists("usuarios/$usNick.php")) { //comprobamos si el usuario existe
include ("usuarios/$usNick.php");// incluimos los datos
if($usCon == $clave){ //comprobamos las contraseñas
$key2 = "si";// si todo esta bien ponemos $key2 en si
}
Que pasa si el usuario te manda como nombre de usuario algo como ../../../etc/passwd ????
Creo que deberías limpiar la entrada.
Comparar strings con == tampoco es recomendable, es mejor usar strcmp.
En el segundo sistema, tampoco haces ninguna limpieza de las variables antes de armar la query. Usa mysql_real_escape para limpiar las variables.
Saludos.
¿Tambien se debería usar strcmp cuando la comparación es tipo != o no es necesario?
Gracias.