php - 如何在 PHP/MySQL 中对用户进行身份验证?

标签 php authentication

所以最近我学习了如何正确地将用户名和密码添加到数据库中。 我的数据库是usersys,存储用户信息的表叫userdb。该表有两列 - 用户名(主要)、密码。

注册表格很好用,将用户输入正确地输入到数据库中,还检查用户的用户名是否已经在数据库中。

话虽如此,我想问问是否有人可以帮我创建一个登录脚本。到目前为止,这就是我所拥有的:

$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'];

POST 数据来自之前的登录页面。我希望此脚本检查表 (userdb) 并找到用户从上一个表单输入的用户名所在的行,并验证输入的密码是否与 userdb 表中该行中设置的用户名密码相匹配。

我还想要某种方法来检查输入的用户名是否存在,如果在表中找不到,则告诉用户输入的用户名不存在。

最佳答案

这不是对这个问题的直接回答,而是一个很好的增值。 密码存入数据库前应使用MYSQL SHA1函数加密。

$user = $_POST['userid'];
$pwd = $_POST['password'];
$insert_sql = "INSERT into USER(userid, password) VALUES($user, SHA1($pwd))";

$select_sql = "SELECT * FROM USER WHERE userid=$user AND password=SHA1($pwd))";

关于php - 如何在 PHP/MySQL 中对用户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/685855/

相关文章:

web-services - 如何使用 wsimport 生成 wsdl 需要身份验证的 Web 服务客户端?

php - 打印 $_POST 变量名和值

php - 使用先前查询的结果搜索 MySQL 表

authentication - 通过外部站点登录 Moodle

authentication - 让纯 HTML/CSS/JS SPA 应用程序询问用户他的用户名/密码并将其传递给 ADFS?

asp.net - Blazor Webassembly 身份验证非常慢

php - CSV php,使用浏览器变量保存为数字,cron 作为字符串

php - 使用数组元素运行 sql 查询

php - "Pay now"按钮集成的 Paypal 选项 (PHP)

android - 检查 (ParseUser.getCurrentUser() != null) 时出现 NullPointerException