Joomla 3获取用户ID

标签 joomla

我在文件夹 myjoomla/myscript/中有此代码

<?php
define('_JEXEC', 1 );
define('JPATH_BASE', $_SERVER['DOCUMENT_ROOT']."" ); 
define( 'DS','/' );

require_once ( JPATH_BASE.DS. 'includes'.DS.'defines.php' );
require_once ( JPATH_BASE.DS.'includes'.DS.'framework.php' );
require(JPATH_BASE.DS.'libraries/joomla/factory.php');

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

jimport( 'joomla.session.session' );
$session                =& JFactory::getSession();

$user =& JFactory::getUser();
echo "id:".$user->id;

我打印 JPATH_BASE 并且没问题。但没有打印id,只打印“0”。我在 joomla 中登录正常。这在本地主机中可以,但在服务器中不行。

谢谢

最佳答案

是的,确实,这就像旧代码。新代码如下所示,

<?php
if (!defined('_JEXEC'))
{
    // Initialize Joomla framework
    define('_JEXEC', 1);
}

// Load system defines
if (file_exists(dirname(__FILE__) . '/defines.php'))
{
    require_once dirname(__FILE__) . '/defines.php';
}
if (!defined('JPATH_BASE'))
{
    define('JPATH_BASE', dirname(__FILE__));
}
if (!defined('_JDEFINES'))
{
    require_once JPATH_BASE . '/includes/defines.php';
}

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

$app = JFactory::getApplication('site');
$app->initialise();

$user = JFactory::getUser();
echo "id:".$user->id;

注意:在本地和实时测试您的代码,它对我有用。但不太确定为什么它在您的生活环境中不起作用。但你的代码确实很旧。

关于Joomla 3获取用户ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30514027/

相关文章:

php - 如何生成 Joomla 密码?

php - @eval($_POST[1]) 是什么意思

php - 如何将大量参数从 PHP 传递到 Javascript 函数?

php - 你如何测试你是否在 Joomla 的主页上?

php - Joomla 3.x - 自己的组件 - 自定义 seo url

html - 单元格中的表格图像显示较小

php - joomla下执行的php从sql中检索多行数据

javascript - Jquery 缩放不起作用

php - joomla-php mysql 未使用先前查询的数据更新记录

javascript - 当我更改它时,Joomla 仍然从旧域加载 CSS 和 Javascript