-2
你好,我有一個大問題..我創建一個用戶登錄網站,但問題是,如果我有2個或更多的用戶在數據庫中,如果我嘗試登錄與我的第二個用戶的憑據它只給我第一個用戶的信息。任何幫助將不勝感激。PHP登錄錯誤
的login.php
include '../init/init.php';
if (empty($_POST) === false) {
// ...
$username = $_POST['log_username'];
$password = $_POST['log_password'];
$login = login($username, $password);
if ($login === false){
die(msg1(0, 'Password is incorrect.'));
}else{
$_SESSION['id'] = $login;
die(msg1(1,"members.php"));
exit();
}
}
users.php(我這裏有我所有的用戶功能)
<?php
// ...
function user_id_from_username($username) {
$username = sanitize($username);
$query_user_id = mysql_query("SELECT (`id`) FROM `users` WHERE `username` = '$username'");
return mysql_result($query_user_id, 0, 'id');
}
function login($username, $password) {
$id = user_id_from_username($username);
$username = sanitize($username);
$password = md5($password);
$query_login = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'");
return (mysql_result($query_login, 0) == 1) ? $id : false;
}
?>
,這表明登錄後的個人資料:
// ...
if (logged_in() === true){
$session_user_id = $_SESSION['id'];
$sql = mysql_query("SELECT * FROM users");
$id = 'id';
$username = 'username';
$rows = mysql_fetch_assoc($sql);
}
$errors = array();
// show profile based on $rows
>'它只給我數據庫信息中的第一位用戶。' 您是否指''login.php'後訪問者$ _SESSION ['id']'總是1?或者'members.php'總是顯示第一個用戶的信息? 您可能會嘗試在查詢結尾使用「LIMIT 1」,您只希望得到一個結果。 – MiniGod
members.php總是顯示第一位用戶的信息..並且仍然無法使用限制1 –
您擁有的2個用戶名是獨特的還是什麼? –