2016-10-21 3 views
0

로그인 성공 후 특정 사용자 이름을 표시하고 싶습니다. 세션을 사용하여 사용자 이름을 호출합니다. 그러나 모든 사용자 이름이 표시됩니다.특정 로그인 사용자 이름 표시

특정 사용자 이름 만 표시하도록 제안하십시오. 내 코드는 다음과 같습니다. 세션에서

는 :

$_SESSION ['admin_name'] = $row['name']; 
$admin_name = $_SESSION['admin_name']; 

는 DB에 삽입 :

$sql = "INSERT INTO account_info (name) 
     VALUES ('$admin_name')"; 

표시 : 일

<?php 
    $count = 1; 
    $sel_query = "Select * from account_info ORDER BY id;"; 
    $result = mysql_query($sel_query); 
    while ($row = mysql_fetch_assoc($result)) { 
?> 
     <td align="left"><?php echo $row["name"]; ?></td> 
<?php 
     $count++; 
    } 
?> 

내가 잉크를 표시하면서 이름을 필터링해야합니다. 필터링하는 방법을 아는 사람은 누구든지 나에게 회신 해주십시오.

업데이트 :

enter image description here

+1

을 쿼리, 당신이 원하는 사용자를 선택하려면 WHERE를 사용해야합니다! 또한 제거합니다 ";" ID를 조회 한 후에! – Soheyl

+2

그리고'session_start()'를 잊어 버렸습니다. – devpro

+0

정보 : PHP에서 처음 사용하는 사람이므로 MySQL_을 사용하지 마십시오. 올바르게 사용하면 더 쉽고 안전한 PDO를 배워보십시오! – Soheyl

답변

0

당신은이 빈약 한 디자인의이 같은-접근 방식을 다시해야하지만, 당신이 달성하고자하는 것을 얻을 :

while($row = mysql_fetch_assoc($result)) { 
    if($row['name'] == $_SESSION['admin_name']) { 
     ... 
    } 
} 

또는 더 나은 ...

$sel_query="Select name from account_info WHERE name = '$admin_name'";

0
$sel_query="Select * from account_info WHERE name = '$admin_name' "; 
+1

을 확인 했습니까? '$ admin_name'이 문자열이면이 명령은 작동하지 않습니다. – devpro

+0

@devpro thx 내 나쁜 – Twinfriends

+0

지금은 괜찮아 보이는 :) – devpro

-1

당신 때문에이 쿼리의 모든 사용자 이름을 얻고있다 :

Select * from account_info ORDER BY id; 

이 모든 사용자 데이터를 반환합니다, 당신의 이름을 추가 할 필요가 WHERE와 같은 특정 사용자에 대한 조항 :

Select * from account_info WHERE name = '$admin_name'; 

더 중요한 것은, 내가 코드에서 session_start() 함수를 보지 못했다는 것을 잊어 버렸습니다. 그렇지 않으면 $_SESSION 값을 얻을 수 없습니다.

중요한 것은 SQL 주입을 위해 코드가 열려 있으므로 Prepared Statement을 사용하여 SQL 공격을 방지 할 수 있습니다. 이것은 당신을 도울 것입니다 : How can I prevent SQL injection in PHP?

아주 특별한 점, mysql_* 7.

사이드 노트 사용되지 않으며 PHP 폐쇄되어 현재 쿼리에

을 필요 ORDER BY id를 사용하지합니다 특정 사용자에게 WHERE을 사용하면이 부분은 쓸모가 없어야하기 때문입니다.

귀하의 요구 사항에 따라 $count++;을 어디에서 사용하고 있습니까? 특정 사용자 데이터 만 인쇄해야하므로 여기에서도 쓸모가 없습니다.

+0

대답 주셔서 감사합니다, – Keerthi

+0

나는 session_start() 있습니다. – Keerthi

+0

하지만 account_info에서 Select *를 쓰는 경우 WHERE name = '$ admin_name'; – Keerthi

0

로그인 성공 후 표시하기 위해 세션 값을 데이터베이스에 저장할 필요가 없습니다. 이 세션 배열이 설정되어

$_SESSION['user_name'] = $row['name']; 

및 로그인 페이지 점검 또는 설정 한 다음과 같은 를 표시 not.If :

에만이 같은 세션 배열에 보관 당신의 선택에

if(isset($_SESSION['user_name'])) { echo $_SESSION['user_name']; } 
관련 문제