2009-10-17 5 views
0

안녕하십니까로그인 한 사용자의 모든 정보를 가져 오는 중입니까? PHP

사용자가 로그인 할 때 모든 정보를 가져 와서 세션에 저장할 수 있습니까? 로그인 한 사용자의 사용자 이름, 전자 메일 등을 얻기 위해이 코드를 모든 페이지 위에 두지 마십시오. ?

$userq = mysql_query("SELECT * FROM users WHERE id = {$_SESSION['id']}"); 
$auth_user = mysql_fetch_assoc($userq); 

Login.PHP 예는 (아마)가 할 수

$sql = mysql_query("SELECT id FROM users 
         WHERE username = '$username' AND password = '$password'"); 

if (mysql_num_rows($sql) < 1) { 
    echo "Wrong username/password"; 
} else { 
    $_SESSION['id'] = mysql_result($result, 0, 'id'); 
    header("Location: index.php"); 
} 
+0

사용하십시오 : : 대신 쿼리 단지 ID를 받고, 당신은 모든 것을 얻을 수는 mysql_query을 (.mysql_real_escape_string "ID가 = WHERE 사용자 SELECT * FROM"($ _ SESSION [ 'ID'])); 대신에 mysql_query ("SELECT * FROM users WHERE id = {$ _SESSION [ 'id']}"); 및 mysql_query ("사용자로부터의 ID 선택 username = '".mysql_real_escape_string ($ username). "'AND password = '".mysql_real_escape_string ($ password). "')); mysql_query ("SELECT id from FROM users WHERE username = '$ username'AND password = '$ password'"); –

답변

2

.

몇 가지하지만, 고려해야 할

  • 당신이
  • 경우 (쓸모없는 데이터의 많은 거대한 세션 파일을 가지고 있지) 필요한 것만 세션을 유지 할 수 있습니다 사용자가 자신의 프로파일을 업데이트하면 새 데이터를 데이터베이스 및 세션에 모두 저장해야합니다. 즉 "프로파일 편집"페이지에서 조금 더 많은 작업이 필요합니다.
  • (관리자와 마찬가지로) 사용자 프로필을 편집하면 해당 사용자의 세션 데이터를 변경할 수 없으며 다음 번에만 해당 세션의 데이터가 업데이트됩니다 에 로그인합니다.
    • 이 자주 발생 뭔가를하는 경우, 당신은, 데이타베이스에서 분 을의 각 한 쌍의 데이터를 갱신 할 수 있습니다 (하지만 거의 "정상"웹 사이트의 경우는 없습니다)
0

예,

$sql = mysql_query("SELECT * FROM users 
        WHERE username = '$username' AND password = '$password'"); 

if (mysql_num_rows($sql) < 1) { 
    echo "Wrong username/password"; 
} else { 
    $_SESSION['userdata'] = mysql_result($result, 0); 
    header("Location: index.php"); 
} 
관련 문제