2016-10-04 77 views
0

我對PHP很陌生,我正嘗試創建一個登錄系統。這裏是我的代碼無法從sql數據庫中得到結果

<?php 

    $con=mysqli_connect("XXXXXXX","XXXXXXXX","XXXXXXXXX","XXXXXXXXXX"); 

    if (!$con) 
     { 
     echo "failed to connect"; 
     } 

    $username = $_POST['username']; 
    $password = $_POST['password']; 

    $sql = "SELECT userID FROM users WHERE username = $username and password =   $password;"; 

    if (!$sql) { 
     echo 'query invalid'.mysql_error(); 
     } 

    $result = mysql_query($sql); 

    echo "$result"; 

    $row = mysqli_fetch_array($sql, MYSQLI_ASSOC); 

    $active = $row['active']; 

    $count = mysqli_num_rows($result); 

    mysql_close($con); 

?> 

我確信連接沒有問題。但是我的結果沒有顯示出來,並且沒有錯誤信息。以前我有一個IF語句,如果結果回來,它會執行進一步的操作。由於我試圖弄清楚發生了什麼,我只是刪除了這部分。有人請幫忙。非常感謝

+1

_here是我的code_ - 沒有代碼! – Jeff

+1

他也是Stack Overflow的新手,夥計們。我編輯它。更全面的新人。 – Phiter

+0

啊,這是它!您忘記了用戶名和密碼! – Jeff

回答

1

你錯過了周圍的變量單引號,也是你使用MySQL與mysqli的混合,這是行不通的。

$sql = "SELECT userID FROM users WHERE username = '$username' and password = '$password';"; 
$result = mysqli_query($con, $sql); 

$row = mysqli_fetch_assoc($sql); // same as fetch_array with MYSQLI_ASSOC 

$active = $row['active']; 

$count = mysqli_num_rows($result); 

你沒有在最後需要mysql_close,但如果你想使用它,它是mysqli_close($con); 請記住,這是不安全的。

使用此功能來過濾用戶輸入:

$username = mysqli_real_escape_string($con, $_POST['username']); 
$password = mysqli_real_escape_string($con, $_POST['password']); 

Read this,以確保您的代碼都遵循安全標準。

+0

感謝,但它仍然無法正常工作...... –

+0

是啊,我剛纔注意到你的mysql混合了mysqli的,我會更新我的答案。 – Phiter

+0

是的,但我會擔心的。但是,您是否在我的代碼中看到任何其他問題?曲子是功能不工作也不 –

0

我推薦這個。

$sql = "SELECT userID FROM users 
WHERE username = " ._sql($username) ." and password = " ._sql($password); 

// generate sql safe string function 

function _sql($txt) { 
    if ($txt === null || $txt === "") 
     return "NULL"; 
    if (substr($txt, 0, 2) == "##") 
     return substr($txt, 2); 
    //$txt = str_replace("'", "''", $txt); 
    $txt = mysql_real_escape_string($txt); 
    return "'" . $txt . "'"; 
} 
+1

這是什麼?你爲什麼推薦這個? – chris85

+0

您需要在開始之前構造代碼 –

+1

您的答案建議是什麼?什麼是'_sql()'? – chris85

相關問題