2017-02-02 4 views
1

Hallo Ich erhalte die folgende Fehlermeldung auf meiner Anwendung, die von einer joomla Anwendung in einem Iframe ausgeführt wird und immer die Benutzerdaten von joomla Sitzung:joomla Fabrik erhalten Benutzer

Warnung: ini_set(): Eine Sitzung ist aktiv. Sie können nicht das in zu diesem Zeitpunkt Moduls ini Einstellungen Sitzung ändern /home/sites/accstats.co.uk/public_html/libraries/joomla/session/handler/joomla.php on line 45-ID: 973

Dies ist der Code, den ich benutze, der immer gut für ältere Versionen von Joomla funktioniert hat, ich bin kein Entwickler (nur ein Amateur) also bin ich mir nicht sicher, was das Problem ist.

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"] = ""; 
} 
+0

Haben Sie session.autostart überprüft? http://stackoverflow.com/questions/32814895/message-ini-set-a-session-is-active-you-cannot-change-the-session-modules und http://stackoverflow.com/questions/13539269/ errorexception-warning-ini-set-a-session-ist-aktiv-du-kannst-nicht-die-s ändern? verwendest du mod-spdy modul http://stackoverflow.com/questions/13654848/php-warning-a-session-is-active-you-cannot-change-the-session-modules-ini-set? Was passiert, wenn Sie einen Sitzungsbeginn am Anfang der Datei hinzufügen? –

+0

Zuerst brauchen Sie uns nicht. DS. in den meisten Fällen nicht mehr, da Windows kein Problem mehr hat * mit Nix-Schrägstrichen umzugehen. Aber zweitens ... sieht es so aus, als hätten Sie einen doppelten Schrägstrich, weil Sie am Ende von JPATH_BASE einen Schrägstrich haben und dann ein '.DS.', bevor Sie das nächste Segment anhängen. – Elin

Antwort

0

Ich hatte das gleiche Problem. Als ich zum Live-Server wechselte, funktionierte keine meiner AJAX-Dateien. Nachdem ich Stunden damit verbracht hatte, stellte ich fest, dass es sich um ein URL-Problem handelt. Also habe ich es herausgefunden, indem ich JPATH_BASE korrigiert habe. Ich sehe, dass Sie den absoluten Pfad zu diesem Parameter angegeben haben. Warum nicht Sie es auf diese Weise definieren:

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'); 

Wenn es nicht für Sie arbeiten, können Sie die Anzahl der Schrägstriche an Codezeile ändern 2. Ich kopiert und eingefügt den Header der Anwendung, die ich hatte das Problem mit und löste es. Hoffe, es funktioniert auch für dich.