用于登录用户数据的joomla外部PHP代码

时间:2013-05-25 04:36:42

标签: php joomla

define('_JEXEC', 1);
define('JPATH_BASE', realpath(dirname(__FILE__)));
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
require_once ( JPATH_BASE .'/libraries/joomla/factory.php' );
$user = JFactory::getUser();   
echo 'User name: ' . $user->username . '<br />';     
echo 'Real name: ' . $user->name . '<br />';
$specificuser = JFactory::getUser(42);
echo 'Specific User name: ' . $specificuser->username . '<br />';
echo 'Specific Real name: ' . $specificuser->name . '<br />';

我在外部php文件中添加了此代码。 $specificuser代码正在运行;但有时显示$user输出,有时则不显示。对这个问题有什么看法吗? 输出在这里:

User name: 
Real name: 
Specific User name: user
Specific Real name: Super User

2 个答案:

答案 0 :(得分:2)

JFactory::getUser()方法加载当前用户对象:

  • 当您登录时:它将返回您的数据。
  • 当您退出时:您是一位没有姓名的访客/匿名访客。

第二种情况也适用于您登录,但会话过期。

答案 1 :(得分:1)

你没有启动Joomla!应用程序,因此会话处理和其他事情不起作用。

有关如何初始化Joomla的工作示例,请参阅my answer to a similar question!正确。