我有一個函數,如果一個指定的用戶在我的數據庫中,我將在我的屏幕上顯示一個字符串值的消息,簡單地說我的函數有效。mysqli_data_seek函數返回用戶名結果,當用戶名不在數據庫中
但是,當我將名稱更改爲數據庫中不存在的名稱時,我仍然得到一個字符串輸出,該函數說明該函數有效。所以我想弄清楚我的邏輯在查詢中的位置。下面是我有:
Users.php文件:
<?php
function user_exists($username)
{
$db = "adults";
$dbH = "localhost";
$dbU = "root";
$dbP = "Jeffery9";
//connection to database
$dbCon = mysqli_connect($dbH, $dbU, $dbP, $db);
$username = sanitize($username);
// $query = mysqli_query($dbCon,"SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username'");
return (mysqli_data_seek(mysqli_query($dbCon,"SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username'"), 0) == 1) ? true : false;
}
?>
現在,這裏的登錄頁面,其處理功能,看看如果用戶確實存在:
的login.php文件:
<?php
include 'core/init.php';
if (user_exists('raiders7') === true)
{
echo 'user found!';
}
die();
if(empty($_POST) === false)
{
$username = $_POST['username'];
$password = $_POST['password'];
if(empty($username) === true || empty($password) === true)
{
$errors[] = 'You need to enter a username and password.';
}
else if (user_exists($username) === false)
{
$errors[] = 'We can\'t find that username. Have you registered?';
}
}
?>
當然,我在數據庫中有一行和一個用戶。當字符串爲user_exists('raiders7')
時,我在我的索引頁上獲得user found!
。
但是當它是user_exists('something else')
它仍然返回頁面上user found!
。
這是怎麼回事?如果用戶不存在,頁面應該是空白的。
最後,我在使用其他功能來淨化喜歡這樣我的數據:
General.php文件:
<?php
function sanitize($data)
{
$db = "adults";
$dbH = "localhost";
$dbU = "root";
$dbP = "Jeffery9";
// connection to database
$dbCon = mysqli_connect($dbH, $dbU, $dbP, $db);
return mysqli_real_escape_string($dbCon, $data);
}
?>
不知道最後一部分是有益的,但有人很好地幫我修正了我的邏輯,當我的測試數據庫中不存在用戶時,我可以停止獲取user found!
消息。謝謝。
你可以砍掉了很多代碼的下降只是簡單地使用'mysqli_num_rows()'。 – 2014-10-28 02:57:43