检查从外部脚本登录Joomla 2.5的用户(重申)

时间:2017-06-24 09:14:25

标签: php login joomla joomla2.5

我熟悉PHP和其他语言的编码,但我对Joomla完全不熟悉。

我想要完成的是知道用户何时登录Joomla网站(在/ web下)并相应地区分该脚本的行为。

我在/ web /下有一个Joomla 2.5网站,我在/web/test/index.php下有一个脚本,其中包含以下代码(从此处的其他回复和其他地方收集) :

define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
echo dirname(dirname(__FILE__)) . "\n";
if (file_exists(dirname(dirname(__FILE__)) . '/defines.php'))
    include_once dirname(dirname(__FILE__)) . '/defines.php';

if (!defined('_JDEFINES')) {
    define('JPATH_BASE', dirname(dirname(__FILE__)));
    require_once JPATH_BASE.'/includes/defines.php';
}
require_once JPATH_BASE.'/includes/framework.php';
$app = JFactory::getApplication('site');
$app->initialise();

print_r(JFactory::getUser());

我得到的是

/web
JUser Object
(
    [isRoot:protected] => 
    [id] => 0
    [name] => 
    ...

谢谢,

1 个答案:

答案 0 :(得分:1)

使用此代码正常工作:

define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/' ));

require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );
$mainframe = JFactory::getApplication('site');

var_dump(JFactory::getUser());