Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PHP mySQL kiểm tra xem tên người dùng và mật khẩu có trong cơ sở dữ liệu không

Bạn có thể sử dụng mysql_num_rows() và kết hợp truy vấn của bạn - Xem chú thích cuối trang

if(isset($_POST["name"], $_POST["password"])) 
    {     

        $name = $_POST["name"]; 
        $password = $_POST["password"]; 

        $result1 = mysql_query("SELECT username, password FROM Users WHERE username = '".$name."' AND  password = '".$password."'");

        if(mysql_num_rows($result1) > 0 )
        { 
            $_SESSION["logged_in"] = true; 
            $_SESSION["naam"] = $name; 
        }
        else
        {
            echo 'The username or password are incorrect!';
        }
}

Để làm cho mã hiện tại của bạn an toàn hơn một chút, hãy sử dụng:

$name = stripslashes($_POST["name"]); 
$name = mysql_real_escape_string($_POST["name"]);

$password = stripslashes$_POST["password"]); 
$password = mysql_real_escape_string($_POST["password"]); 

nhưng hãy xem các liên kết bên dưới về cách sử dụng các câu lệnh đã chuẩn bị và băm mật khẩu.

Chú thích cuối trang:

Mã hiện tại của bạn được mở cho Chèn SQL . Sử dụng báo cáo đã chuẩn bị sẵn hoặc PDO với các báo cáo đã chuẩn bị sẵn . Truy cập các liên kết đó để biết thêm thông tin.

Tôi nhận thấy rằng bạn có thể đang lưu trữ mật khẩu ở dạng văn bản thuần túy. Nếu đúng như vậy, rất không khuyến khích.

Nếu bạn đang sử dụng và đây là một trang web TRỰC TIẾP, cuối cùng bạn sẽ bị tấn công.

Tôi khuyên bạn nên sử dụng CRYPT_BLOWFISH hoặc password_hash() của PHP 5.5 hàm số. Đối với PHP <5.5, hãy sử dụng password_hash() compatibility pack .

mysql_* thông báo ngừng sử dụng chức năng:

http://www.php.net/manual/en/intro.mysql .php

Tiện ích mở rộng này không được dùng nữa kể từ PHP 5.5.0 và không được khuyến nghị để viết mã mới vì nó sẽ bị xóa trong tương lai. Thay vào đó, mysqli hoặc PDO_MySQL phần mở rộng nên được sử dụng. Xem thêm Tổng quan về API MySQL để được trợ giúp thêm khi chọn MySQL API.

Các chức năng này cho phép bạn truy cập các máy chủ cơ sở dữ liệu MySQL. Thông tin thêm về MySQL có thể được tìm thấy tại » http://www.mysql.com/ .

Tài liệu về MySQL có thể được tìm thấy tại » http://dev.mysql.com/doc/ .

Chỉnh sửa: để giúp OP (hãy xem các liên kết tôi đã cung cấp liên quan đến việc băm mật khẩu).

Thử thay thế

        if(mysql_num_rows($result1) > 0 )
        { 
            $_SESSION["logged_in"] = true; 
            $_SESSION["naam"] = $name; 
        }
        else
        {
            echo 'The username or password are incorrect!';
        }

với:

while($row=mysql_fetch_assoc($result1))
{
$check_username=$row['username'];
$check_password=$row['password'];
}

if($username == $check_username && $password == $check_password){
echo "Matches.";
}

else{
echo "No match found.";
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi một truy vấn SQL phức tạp thành SQLAlchemy

  2. Mysql:Hoán đổi dữ liệu cho các hàng khác nhau

  3. Làm cách nào để hạn chế người dùng MySQL trong một bảng cụ thể

  4. MySQL dấu thời gian hai cột giá trị mặc định NGAY BÂY GIỜ LỖI 1067

  5. Chỉ chọn bản ghi nếu bản ghi trước nó có giá trị thấp hơn