2009-10-17 132 views
0

HI获取登录用户的所有信息? 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

请使用:请求mysql_query( “SELECT * FROM用户WHERE ID =” .mysql_real_escape_string($ _ SESSION [ '身份证']));而不是mysql_query(“SELECT * FROM users WHERE id = {$ _SESSION ['id']}”); 和mysql_query(“SELECT id FROM users WHERE username ='”.mysql_real_escape_string($ username)。“'AND password ='”.mysql_real_escape_string($ password)。“'”);而不是mysql_query(“SELECT id FROM users WHERE username ='$ username'AND password ='$ password'”); – 2009-10-17 21:20:14

回答

2

是你(可能)可能。

一对夫妇的事情要考虑,虽然:

  • 你可能要保持在会话需要才(不具有大量的无用数据的一个巨大的会议文件)
  • 如果用户更新他的个人资料,你必须将新数据存储在数据库和会话中 - 这意味着更多的工作在“编辑个人资料”页面上。
  • 如果其他用户(如管理员)编辑用户的配置文件,您将无法更改该用户的会话数据,并且更新将从数据库加载到会话中,只有在下次在用户登录。
    • 如果这是一件经常发生,你可能希望从DATABSE每隔几分钟的刷新数据(但它很少在一个“正常”的网站的情况下)
0

是的,而不是让刚刚在查询中的ID,你得到的一切:

$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"); 
} 
相关问题