Hallo zusammen,
ich habe vor einigen Tagen auf einer von mir betreuten Seite das Update der Joomla Version 3.4.8 auf 3.6.5 durchgeführt. Seit dem bekomme ich den im Titel genannten Fehler auf einer Unterseite mit custom PHP-Code.
Zunächst die Systeminfos:
- CentOS 6
- PHP 7.0.14 (FastCGI Apache), aktualisiert von 5.5.38
- Joomla 3.6.5
Ich habe einen Beitrag erstellt, in dem ich per iframe verschiedene externe PHP-Sktipte lade und ausführe. Dieser Beitrag ist nur für eingeloggte Benutzer mit entsprechenden Rechten einsehbar. In dem betroffenen PHP-Skript lese ich einige Benutzerdaten aus der Joomla-Datenbank aus:
...
<?php
/// BASICS
require_once('../configuration.php');
$conf = new JConfig();
/// Initialize Joomla framework
define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define( 'JPATH_BASE', dirname(__FILE__).DS.'..');
/// Required Files
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
/// To use Joomla's Database Class
require_once ( JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'factory.php' );
/// Create the Application
$mainframe = JFactory::getApplication('site');
/// BENUTZERDATEN UND ÜBERGABEVARIABLEN ERMITTELN
$user = &JFactory::getUser();
$userID = $user->id;
$userName = $user->username;
...
Alles anzeigen
Dabei wird genau an der Stelle $mainframe = JFactory::getApplication('site'); der Fehler erzeugt:
Error displaying the error page: Application Instantiation Error: Failed to start the session because headers have already been sent by "/var/www/vhosts/XXX/httpdocs/userList.php" at line 929.
Entferne ich in der Zeile das 'site', dann fällt der Teil ab "Failed to start the session..." in der Fehlermeldung weg.
Konsequenz ist aber immer, dass die Variablen für die Benutzerdaten leer sind.
Beliebter Spruch: bisher hat es immer funktioniert.
Ich bin nun schon einige Stunden am suchen, probieren und basteln ohne was zu erreichen. Datenbank-Reparatur habe ich bereits probiert (in Joomla und PHPMyAdmin). Ich bin für jeden weiteren Hinweis dankbar.