我正在开发的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来提取值的。我相信这就是我需要调整的地方。感谢您在此请求中抽出时间,任何帮助都是非常感谢的。
发布于 2013-06-06 20:25:38
$user = JFactory::getUser();
这将始终为您提供登录的用户作为对象。您需要获取配置文件的id,比如从request中获取,如下所示。
$id = JFactory::getApplication()->input->getInt('id', 0);
https://stackoverflow.com/questions/16968330
复制相似问题