Vì vậy, gần đây tôi đã học cách thêm đúng tên người dùng và mật khẩu vào cơ sở dữ liệu. Cơ sở dữ liệu của tôi là người dùng và bảng lưu trữ thông tin người dùng được gọi là userdb. Bảng có hai cột - tên người dùng (chính), mật khẩu.Làm cách nào để xác thực người dùng trong PHP/MySQL?
Biểu mẫu đăng ký hoạt động tốt, nhập dữ liệu người dùng nhập vào cơ sở dữ liệu chính xác và cũng kiểm tra xem tên người dùng của người dùng đã có trong cơ sở dữ liệu hay chưa.
Với điều đó đã nói, tôi hỏi liệu có ai có thể giúp tôi tạo tập lệnh đăng nhập hay không. Cho đến nay, đây là những gì tôi có:
$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'];
Dữ liệu POST là từ trang đăng nhập trước đó. Tôi muốn kịch bản này kiểm tra bảng (userdb) và tìm hàng cho tên người dùng mà người dùng đã nhập từ biểu mẫu trước đó và xác minh rằng mật khẩu đã nhập khớp với mật khẩu của người dùng được đặt trong hàng đó, trong bảng userdb.
Tôi cũng muốn một số loại cách kiểm tra xem có tên người dùng đã nhập hay không, để cho người dùng biết tên người dùng đã nhập không tồn tại nếu không tìm thấy tên trong bảng.
Bạn nên tái sử dụng một khuôn khổ xác thực hiện bất cứ khi nào có thể, bởi vì, thực sự, đó là phức tạp. Ví dụ: hãy xem https://github.com/delight-im/PHP-Auth, cả hai đều không có khung công tác bất khả tri và không có cơ sở dữ liệu. – caw