2016-07-07 227 views
-2

我正在創建一個用戶登錄/註冊表單。我正在測試php登錄表單。PHP測試功能

我使用函數user_exists來測試用戶是否在數據庫中找到用戶名。每當我添加一個「if」語句來測試時,我收到一個錯誤,說明該頁面無法處理我的請求。每當我刪除I​​F語句時,頁面顯示都很好。

<?php 


function user_exists($username){ 

$query = mysql_query(" select count(user_id) From Users WHERE username = '$username' "); 

return (mysql_result($query) == 1) ? true : false; 

} 

if(user_exists('kwame') === true){ 
echo 'true'; 
} 

else { 
echo ' oh no!'; 
} 

?> 
+1

因此打開錯誤日誌並檢查錯誤。 –

+0

http://security.stackexchange.com/questions/128412/sql-injection-is-17-years-old-why-is-it-still-around –

+2

請勿使用'mysql',因爲它已折舊並且會在PHP 7中不再支持。使用'mysqli'或'PDO'代替 – Confiqure

回答

1

你沒有正確地調用您的功能 - 它尋找的用戶名,並返回一個布爾

變化

if(user_exists($username) === 'kwame'){ 

if(user_exists('kwame')){ 
+0

在我輸入的時候,您的問題是如何更改/編輯的?並沒有指示它被編輯?我只是複製/粘貼你的問題 - 現在它不同了 – dbmitch

2

mysql_result將返回一個字符串不一個整數 使用mysql_num_rows代替

0

這裏是()mysql_result的文檔:

你可以看到它需要什麼樣的參數和它返回什麼:

string mysql_result (resource $result , int $row); 

從MySQL中檢索一個單元格的內容結果集。