joomla工厂获得用户

时间:2017-02-02 00:07:03

标签: php joomla

您好我在我的应用程序上收到以下错误消息,该消息在joomla应用程序的iframe中运行并从joomla会话获取用户详细信息:

  

警告:ini_set():会话处于活动状态。您无法更改会话   此时模块的ini设置   /home/sites/accstats.co.uk/public_html/libraries/joomla/session/handler/joomla.php   第45行身份证号码:973

这是我正在使用的代码,对于旧版本的joomla来说,它一直运行良好,我不是开发人员(只是一个业余爱好者)所以我不确定问题是什么。

define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define('JPATH_BASE', "/home/sites/accstats.co.uk/public_html/" );

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

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

$user = JFactory::getUser();

if($user->id)


// log in
{
        $_SESSION["UserID"] = $user->get("username");
        $groups = $user->get('groups');
        $_SESSION["GroupID"] = reset($groups);
        $_SESSION["UserName"] = $user->get("name");
        if ($user->get('isRoot')) $_SESSION["AccessLevel"] = ACCESS_LEVEL_ADMINGROUP;
        else $_SESSION["AccessLevel"] = ACCESS_LEVEL_USER;
}
else 
// log out
{
        $_SESSION["UserID"] = "";
        $_SESSION["AccessLevel"] = "";
        $_SESSION["GroupID"] = "";
        $_SESSION["UserName"] = "";
}

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。当我转移到实时服务器时,我的AJAX文件都没有工作。花了几个小时后,我发现这是一个URL问题。所以通过纠正JPATH_BASE来解决这个问题。我看到你已经给出了该参数的绝对路径。你为什么不这样定义:

define( '_JEXEC', 1 );

define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../../../..' ));

// including the main joomla files
require_once ( JPATH_BASE . '/includes/defines.php' );
require_once (  JPATH_BASE . '/includes/framework.php' );
require_once (  JPATH_BASE . '/configuration.php' );

// Creating an app instance
$app = JFactory::getApplication('site');
$app->initialise();
jimport( 'joomla.user.user' );
jimport( 'joomla.user.helper' );

如果它不适合您,您可以更改代码行2处的斜杠数。我复制并粘贴了我遇到问题的应用程序的标题并解决了它。希望它也适合你。