Wie man die session-Daten (aus externen php-Skript), ohne überschrieben zu werden durch die Joomla-session?
Wenn ich den Joomla-framework, Joomla session scheint zu sein, überschreiben Sie die Sitzung, dass ich in einem anderen Skript.
Wie bekomme ich Informationen aus der ersten Sitzung UND von Joomla?
DETAILS
Begann ich eine Sitzung in einem php-Skript externe Joomla.
Datei ist file1.php
<?php
session_start();
$qid[0]=1;
$qid[0]=2;
$qid[0]=3;
$_SESSION['qid']=$qid;
?>
Dann habe ich ein php-Skript aufgerufen main.php Es beinhaltet 2 Dateien, getsessdata.php und getjoomla.php
main.php
<?php
include("getsessdata.php");
include("getjoomla.php");
?>
Bekomme ich die session-Daten aus main.php wenn getjoomla.php ist nicht im Lieferumfang enthalten.
var_dump($_SESSION); Zeigt, dass die session-Daten für qid fehlt, wenn getjoomla.php ist im Lieferumfang enthalten.
getsessdata.php
<?php
session_start();
$qid=$_SESSION['qid'];
?>
getjoomla.php
<?php
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
require_once (JPATH_BASE.DS.'libraries'.DS.'joomla'.DS.'environment'.DS.'request.php');
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
?>
FRAGE:
Wie kann ich auf die session-Informationen aus file1.php und immer noch Zugriff auf die Daten aus getjoomla.php ? Warum verliere ich die Informationen aus der ersten Sitzung?
Nicht sicher, ob das hilft, aber sobald ich die session-Daten aus Datei1 in main.php die Sitzung ist nicht mehr erforderlich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gehen auf die Verwendung von $mainframe, ich vermute Joomla! 1.5.x.
Beim Aufruf JFactory::getApplication('site') schon im Bau, wird eine neue Sitzung erstellt wird, mithilfe von session_start() mit einer übergebenen Id, diese Schläge entfernt alle vorherigen session.
Insbesondere, wenn JSession heißt, es ist __construct aufruft _start
Dies zu umgehen, könnten Sie versuchen,* das:
legen Sie Ihre Daten in einem Namensraum, in $_SESSION zu
pass eine option-array nach 'Ort' Wert, zB. Ihre session-namespace.
->
HTH.
*Ich bin mir nicht 100% sicher sind, von der mechanik, sondern es sollte in der Nähe sein.
In der Ende ich benutzte die Joomla session-Informationen zu speichern.
Konflikte zu vermeiden, können Sie auch überspringen Sie die mainframe-Teil, wenn es nicht benötigt wird zumindest.
Beispiel:
Es dauerte einige Zeit, um es herauszufinden und es funktioniert !