尝试获取正在查看的个人资料的用户ID

时间:2013-06-06 17:21:20

标签: php mysql joomla

我正在开发的PHP脚本需要根据当时正在查看的配置文件从数据库中提取字段值。目前我已经开发了这个脚本,除了一个项目外,它对我有用。问题是它显示的值是基于登录用户的配置文件而不是正在查看的配置文件。例如,假设有一个与标题为profile_key的每个配置文件相关联的字段。登录的用户具有以下值:

profile_key=123

当此用户查看他们自己的个人资料时,他们会看到以下内容:

profile_key=123

现在,让我们继续这个例子与第二个用户。第二个用户(未登录)具有以下键值:

profile_key=789

目前,当登录用户(第一个用户)访问未登录用户(第二个用户)时,登录用户会在未登录用户的个人资料中看到以下内容:

profile_key=123

登录用户访问未登录用户的个人资料时应显示的键值是为该用户的个人资料设置的值:

profile_key=789

此网站位于Joomla,此处是脚本的一个片段,其中显示了获取配置文件键值的查询:

// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
// Get User ID
$user = JFactory::getUser();
$id = $user->id;
// Select all records from the user profile table where key begins with "custom.".
// Order it by the ordering field.
$query = 'SELECT cb_profilekey FROM #__comprofiler WHERE user_id = ' . $id.'';

正如您所看到的,查询是根据查看页面的用户的ID而不是正在查看的用户页面的ID来提取值。我相信这是我需要一些调整的地方。感谢您在此请求中的时间,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

$user = JFactory::getUser();

这将始终为您登录的用户提供对象。您需要获取个人资料的ID,例如来自此类请求。

$id = JFactory::getApplication()->input->getInt('id', 0);