Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PHP mySQL memeriksa apakah nama pengguna dan kata sandi ada di database

Anda dapat menggunakan mysql_num_rows() dan gabungkan kueri Anda - Lihat catatan kaki

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!';
        }
}

Untuk membuat kode Anda saat ini sedikit lebih aman, gunakan:

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

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

tetapi lihat tautan di bawah tentang penggunaan pernyataan yang disiapkan dan hashing kata sandi.

Catatan kaki:

Kode Anda saat ini terbuka untuk injeksi SQL . Gunakan pernyataan yang disiapkan , atau PDO dengan pernyataan yang disiapkan . Kunjungi tautan tersebut untuk informasi lebih lanjut.

Saya perhatikan Anda mungkin menyimpan kata sandi dalam teks biasa. Jika ini masalahnya, sangat tidak disarankan.

Jika ya dan ini adalah situs LANGSUNG, pada akhirnya Anda akan diretas.

Saya menyarankan Anda menggunakan CRYPT_BLOWFISH atau PHP 5.5 password_hash() fungsi. Untuk PHP <5.5 gunakan password_hash() compatibility pack .

mysql_* pemberitahuan penghentian fungsi:

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

Ekstensi ini tidak digunakan lagi pada PHP 5.5.0, dan tidak disarankan untuk menulis kode baru karena akan dihapus di masa mendatang. Sebagai gantinya, mysqli atau PDO_MySQL ekstensi harus digunakan. Lihat juga Ikhtisar MySQL API untuk bantuan lebih lanjut saat memilih API MySQL.

Fungsi-fungsi ini memungkinkan Anda untuk mengakses server database MySQL. Informasi lebih lanjut tentang MySQL dapat ditemukan di » http://www.mysql.com/ .

Dokumentasi untuk MySQL dapat ditemukan di » http://dev.mysql.com/doc/ .

Sunting: untuk membantu OP (lihat tautan yang saya berikan tentang hashing kata sandi).

Coba ganti

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

dengan:

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. Mengapa menghubungkan ke server MySQL sangat lambat?

  2. Efisiensi cache kueri

  3. Sisipkan beberapa baris dengan PDO

  4. Kesalahan Pemotongan Data MySQL

  5. Batasan kunci asing MySQL 5.5 gagal ketika kunci asing ada