Hallo Leute,
folgendes Problem habe ich derzeit:
Ich entwickle eine externe Website, welche nicht per Iframe in Joomla eingebuden ist. Um diese Seite nutzen zu können, benötige ich die Joomla-ID eines Benutzers. An sich ist das nicht kompliziert, das Auslesen benötigt jedoch ca 1,5s mehr als das normale Laden der Website, das möchte ich optimieren.
Im Prinzip ist das auch nicht so das Problem, aber das Sessionhandling in Joomla ist schon ein bisschen komisch :-D..ich dachte, ich kann die ID einfach in der Session speichern - falsch gedacht.
In der index.php befindet sich Folgendes:
session_start(); include('php/funktionen.php');if(!isset($_SESSION['ID'])){ $_SESSION['ID'] = getUserID(); }
Die Funktion sieht hierfür so aus:
function getUserID()
{
define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define( 'JPATH_BASE', '../../joomla' );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$app = JFactory::getApplication('site');
$app->initialise();
$user = JFactory::getUser();
return $user->id;
}
Alles anzeigen
Jedes mal zerhaut es mir die Session, aber wieso? Hat jemand eine Erklärung? Oder hat jemand eine andere Idee, wie ich das lösen kann? Es gäbe ja auch die Möglichkeit, die ID per Cookie zu speichern, jedoch ist das sicherheitstechnisch schon etwas schlechter als in einer Session zu speichern. Um zu verhindern, dass Leute von einer anderen Joomla-Instanz auf meine externe Seite kommen, möchte ich zusätzlich die Session-ID per Coockie bzw. in einer Session speichern, um diese dann mit der aktuellen abzugleichen.
Aber ich habe permanent keinen Zugriff auf die Session. Wenn ich nach dem Funktionsaufruf ein var_dump auf die Session mache, gibt er mir auch schön alles aus, bei einem Reload ist jedoch wieder alles weg.
Ich hoffe, ich konnte das Problem weitestgehend beschreiben und ihr habt Lösungsansätze für mich
Gruß,
Wuz
Post in anderem Forum: http://www.joomlaportal.de/joo…verwenden-von-joomla.html