2016-08-18 2 views
-2

좋아요, 아주 간단한 로그인을 설정하고 데이터베이스에 가입 했으므로 완벽하게 작동합니다.PHP 데이터베이스 사용자 선택

그러나 내가 만든 페이지 중 사용자가 자신의 계정 정보 (사용자 이름 및 이메일)를 확인할 수있는 곳 중 하나는 완전히 작동하지 않습니다.

ID, 사용자 이름, 전자 메일 및 암호가 4 개인 데이터베이스가 있습니다.

내가하고있는 일은 데이터베이스 (누가 로그인했는지)에서 사용자 정보를 가져 와서 사용자 이름과 이메일을 페이지에 표시하는 것뿐입니다. (. 로그인 한 사용자) :

<?php 
// SQL query 
$strSQL = "SELECT * FROM users"; 

// Execute the query (the recordset $rs contains the result) 
$rs = mysql_query($strSQL); 

// Loop the recordset $rs 
// Each row will be made into an array ($row) using mysql_fetch_array 
while($row = mysql_fetch_array($rs)) { 

    // Write the value of the column FirstName (which is now in the array $row) 
    echo $row['email'] . "<br />"; 
    echo $_SESSION['username']; 

    } 

// Close the database connection 
mysql_close(); 
?> 

나 '

문제는, 나는 단지 그것을 하나의 사용자를 선택합니다

코드 코드가 데이터베이스 내에서 모든 사용자를 로그인하는 것입니다 도와 줘서 고마워!

+0

주 : mysql 대신에'mysqli'를 사용하십시오. 왜냐하면 더 이상 사용되지 않으며 곧 삭제 될 것이기 때문입니다. –

답변

0

의 모양은 당신의 SQL 쿼리 ...

"SELECT * FROM users WHERE ID = '$user_id'" 

당신은 아마 당신의 로그인 세션에 $_SESSION에서 username 값을 저장해야하는 SQL이

$user_id = mysql_real_escape_string($user_id); 
+0

좋아, 응원하겠습니다. 시험해 보겠습니다. –

2

취약성을 해결하기 위해 기억 .

if (!isset($_SESSION)) { 
    session_start(); 
    $_SESSION['id'] = the_id_of_your_logged_username; 
} 

그런 다음 $_SESSION에 저장된 값을 사용하여 기록 된 사용자를 검색하십시오.

session_start(); 
$id = $_SESSION['id']; 
$query = "SELECT * FROM users WHERE id='$id'"; 

이러한 방식으로 사용자가 로그인하고 프로필을 직접 가져 오는 방법에 대한 일반적인 방법 만 사용하면 기록 된 사용자를 검색 할 수 있습니다.

+0

합법적 인 것 같습니다. 시험하겠습니다. –

+0

'$ _SESSION'과 다른 전역 변수를 검색 할 수 있습니다. –

+0

나는 거의 그것을 가지고 있다고 생각한다. 문제는 $ _SESSION [ 'id'] = the_id_of_your_logged_username;에 무엇을 넣어야할지 모른다. 선. id 값을 2로 설정하면 데이터베이스에 두 번째 행이 기록됩니다. 목표가 아니므로 로그인 한 사용자를 식별 한 다음 해당 데이터를 표시하도록합니다. –

관련 문제