Recientemente aprendí cómo agregar correctamente un nombre de usuario y contraseña a una base de datos. Mi base de datos es usersys, y la tabla que almacena la información del usuario se llama userdb. La tabla tiene dos columnas: nombre de usuario (principal), contraseña.¿Cómo autentico a un usuario en PHP/MySQL?
El formulario de registro funciona muy bien, ingresa correctamente la entrada de los usuarios en la base de datos y también verifica si el nombre de usuario del usuario ya está en la base de datos o no.
Dicho esto, estoy preguntando si alguien podría ayudarme a crear un script de inicio de sesión. Hasta ahora, esto es lo que tengo:
$username = $_POST['username'];
$password = $_POST['password'];
$displayname = $_POST['username'];
$displayname = strtolower($displayname);
$displayname = ucfirst($displayname);
echo "Your username: " . $displayname . "<br />";
mysql_connect("localhost", "root", "******") or die(mysql_error());
echo "Connected to MySQL<br />";
mysql_select_db("usersys") or die(mysql_error());
echo "Connected to Database <br />";
$lcusername = strtolower($username);
$esclcusername = mysql_real_escape_string($lcusername);
$escpassword = mysql_real_escape_string($password);
$result = mysql_query("SELECT * FROM userdb WHERE username='$esclcusername' AND password='$escpassword'") or die(mysql_error());
$row = mysql_fetch_array($result);
$validateUser = $row['username'];
$validatePass = $row['password'];
Los datos POST son de la página de inicio de sesión anterior. Quiero que este script compruebe la tabla (userdb) y busque la fila del nombre de usuario que el usuario ingresó desde el formulario anterior y verifique que la contraseña ingresada coincida con la contraseña del nombre de usuario establecida en esa fila, en la tabla userdb.
También quiero algún tipo de forma de comprobar si el nombre de usuario ingresado existe o no, para decirle al usuario que el nombre de usuario ingresado no existe si no se puede encontrar en la tabla.
debe volver a utilizar un marco de autenticación existente siempre que sea posible, ya que, en realidad, es compleja. Por ejemplo, eche un vistazo a https://github.com/delight-im/PHP-Auth, que es tanto agnóstico como independiente de la base de datos. – caw