2012-10-09 4 views
-2

안녕하세요이 큰 문제 .. 나는 사용자 로그인 사이트를 만드는거야하지만 문제는 내가 데이터베이스와 경우 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 
+0

>'데이터베이스 정보에서 첫 번째 사용자 만 제공합니다 .' 방문자가'login.php' 이후에'$ _SESSION [ 'id']'가 항상 1인지를 의미합니까? 또는'members.php'는 항상 첫 번째 사용자의 정보를 표시합니까? 하나의 결과 만보고 싶을 때 쿼리 끝에 'LIMIT 1'을 사용하려고 할 수 있습니다. – MiniGod

+0

members.php 항상 1st 사용자의 정보를 보여줍니다 .. 여전히 limit1로 작업하지 않습니다 –

+0

두 개의 사용자 이름은 고유하거나 무엇입니까? 물론 –

답변

1

에서 판단을 의견 섹션의 코드 코드를 변경하는 조언 :

$session_user_id = $_SESSION['id']; 
$sql = mysql_query("SELECT * FROM users WHERE `id`='$session_user_id'"); 

난 당신이 사전에 $_SESSION['id']을 소독한다고 가정하겠습니다.

+0

당신은 대답 형제를 가지고 ... 많이 고마워. –