【发布时间】:2017-06-18 22:20:03
【问题描述】:
您好,我在我的应用程序上收到以下错误消息,该应用程序在 joomla 应用程序的 iframe 中运行并从 joomla 会话获取用户详细信息:
警告:ini_set():会话处于活动状态。您不能更改会话 此时模块的ini设置在 /home/sites/accstats.co.uk/public_html/libraries/joomla/session/handler/joomla.php 在第 45 行 id: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"] = "";
}
【问题讨论】:
-
你检查过 session.autostart 吗? stackoverflow.com/questions/32814895/… 和 stackoverflow.com/questions/13539269/… ?你在使用 mod-spdy 模块 stackoverflow.com/questions/13654848/… 吗?如果在文件开头添加会话开始会发生什么?
-
首先,您不需要我们。 DS 。在大多数情况下,因为 Windows 不再有处理 *nix 斜杠的问题。但是第二个 .. 在我看来你有一个双斜杠,因为你在 JPATH_BASE 的末尾有一个斜杠,然后是
.DS.,然后再附加下一段。