안녕하세요이 큰 문제 .. 나는 사용자 로그인 사이트를 만드는거야하지만 문제는 내가 데이터베이스와 경우 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 항상 1st 사용자의 정보를 보여줍니다 .. 여전히 limit1로 작업하지 않습니다 –
두 개의 사용자 이름은 고유하거나 무엇입니까? 물론 –