0

我们有一个在 Joomla 中运行的应用程序。有一个菜单选项说“我的数据” - 单击它将在 iframe 中打开一个 php 页面。在这个目标 php 中,我们想要捕获我们面临问题的当前登录用户详细信息。

我们使用过JFactory::getUser(),但没有显示任何内容。尽管如果将任何特定的 id 作为参数传递给 getuser,那么该 id 的详细信息就会出现。PFB 代码。有人可以帮助我们。提前致谢 。

/*******Start of code*********/

define('_JEXEC', 1);

define('DS', DIRECTORY_SEPARATOR);

if (file_exists(dirname(__FILE__) . '/defines.php')) {

    include_once dirname(__FILE__) . '/defines.php';
}

if (!defined('_JDEFINES')) {

    define('JPATH_BASE', dirname(__FILE__));

    require_once JPATH_BASE.'/includes/defines.php';

}

require_once JPATH_BASE.'/includes/framework.php';

$app = JFactory::getApplication('site');

$app->initialise();

$user =& JFactory::getUser();

echo 'User name: ' . $user->username . '<br />'; echo 'Real name: ' . $user->name . '<br />';

$specificuser =& JFactory::getUser(403);

echo 'Specific User name: ' . $specificuser->username . '<br />'; echo 'Specific Real name: ' . $specificuser->name . '<br />';

/******eof code********/
4

2 回答 2

1

而不是这种重新加载 Joomla 框架的方法,您可以只检查会话对象,这是 Joomla 在调试模式下的转储:

Session
__default
    session.counter ⇒ 13
    session.timer.start ⇒ 1363124213
    session.timer.last ⇒ 1363162265
    session.timer.now ⇒ 1363162286
    session.client.browser ⇒ Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
    registry ⇒ {}
        user
            id ⇒ 0
            name ⇒
            username ⇒ 
于 2013-03-13T08:15:55.563 回答
1

尝试使用以下内容:

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' );
$mainframe = JFactory::getApplication('site');

$user = JFactory::getUser();

echo 'User name: ' . $user->username . '<br />'; 
echo 'Real name: ' . $user->name . '<br />';

$specificuser = JFactory::getUser(403);

echo 'Specific User name: ' . $specificuser->username . '<br />'; 
echo 'Specific Real name: ' . $specificuser->name . '<br />';

希望这可以帮助

于 2013-03-13T14:54:39.930 回答