2017-04-12 21 views
0

我已經在互聯網上的各種PHP驗證器上運行此代碼它說這兩個函數(mysql_query,mysql_result)已被棄用在當前版本的PHP中。試圖檢查用戶是否存在與登錄系統在php

即使輸入登錄表單的用戶名和密碼與數據庫/ phpMyAdmin中輸入的用戶名和密碼完全相同,以下代碼段也不能正確執行?

<?php 
    function user_exists($username){ 

    $username = sanitize($username); 
    return (mysql_result(mysql_query("SELECT COUNT(user_Id) FROM `users` WHERE `username` = '$username'"), 0) == 1) ? true : false; 
} 
?> 
+1

* *以下代碼**。哪裏? –

+0

對不起,我在那裏編輯 – Donal5

+1

切換到** mysqli _ ***並嘗試邏輯 –

回答

-1

這應該工作:

$sqluserandpass = "SELECT * FROM users WHERE username = '$username' AND password = '$password'"; 
$result = mysqli_query($con, $sqluserandpass); 
$check = mysqli_fetch_array($result); 
if(isset($check)){ 
    //User is existed 
}else{ 
    //User is not existed 
{ 

你也應該通過簡單的做這樣的事情避免SQL注入:

$stmt = $conn->prepare("SELECT * FROM users WHERE (username, password) VALUES (?, ?)"); 
$stmt->bind_param("ss", $username, $password); 

//execute 
$stmt->execute(); 

希望那是對你有用:)

+1

這很有用,但仍然很糟糕,因爲它沒有解釋如何避免SQL注入。 – Adder

+0

@Adder我沒有回答如何使用PreparedStatement或如何避免SQL注入,我正在回答他的問題來解決他的問題。 –