+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Werte externen PHP-Skripten zur Verfügung stellen

  1. #1
    Neu an Board
    Registriert seit
    12.10.2007
    Beiträge
    9
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Frage Werte externen PHP-Skripten zur Verfügung stellen

    Ich habe ein einfaches Modul welches benutzerspezifische Daten aus der DB ausliest und diese anderen externen PHP-Skripten zur Verfügung stellt. Unter Joomla 1.0 und PHP4 habe ich diese Informationen einfach innerhalb des Moduls in

    PHP-Code:
    $_SESSION['benSpezDaten']; 
    geschrieben. und konnte dann darauf auch unter externen PHP-Skripten darauf zugreifen. Unter Joomla 1.5 und PHP5 klappt das nun nicht mehr. Hat jemand eine Idee, wie woran das liegen könnte, bzw. wie ich das einfach lösen könnte?
    Es handelt sich zwar um benutzerspezifische, jedoch nicht um sensible Daten. Daher suche ich nach einer simplen Lösung.

    Ich habe verschiedene Sachen bereits ausprobiert, aber mir fehlt das Grundverständnis wie Joomla die Sessions behandelt und wie lange und in welchem Gültigkeitsbereich die Session verfügbar ist. Was ich bisher raus bekommen habe ist das Joomla 1.5 die Session mit einem 32 Zeichen langen Namen benennt, der für jede Sitzung neu generiert wird. Das macht es für andere Skripte natürlich ungleich schwieriger darauf zuzugreifen. Aber auch wenn ich unter diesem Namen über ein externes Skript zugreifen will ist mein echo $_SESSION['benSpezDaten'] leer.


    PHP-Code:
    session_name('32ZeichenNamen');
    session_start();
    echo 
    $_SESSION['benSpezDaten']; 
    Wer kann mir hier weiterhelfen oder kann mir sagen, wo ich suchen muss?

  2. #2
    War schon öfter hier
    Registriert seit
    05.02.2007
    Ort
    Dortmund
    Beiträge
    144
    Bedankte sich
    4
    Erhielt 31 Danksagungen
    in 28 Beiträgen

    Standard

    Es lohnt sich hin und wieder mal einen Blick in die API zu werfen. Guck dir mal das JSession-Objekt an, das sollte das sein was du benötigst?

  3. #3
    Neu an Board
    Registriert seit
    12.10.2007
    Beiträge
    9
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Frage

    Danke für den Hinweis. Allerdings werde ich schlichtweg nicht schlau daraus. Also mein Problem besteht nicht darin, wie ich an die Session-ID oder an die Daten der Session rankomme, sondern wie ich diese einem externen Skript (das nicht in Joomla eingebunden ist) zur Verfügung stellen kann.

    Wieso funktioniert es (in der 1.5) nicht mehr, dass ich Daten innerhalb des Joomla Framework auslese und z.B. in einer globalen Variable
    PHP-Code:
    $_globals[`meineDaten`] 
    anderen Skripten zur Verfügung stelle?

    Ich hoffe, ich stehe nicht total auf dem Schlauch und Ihr versteht was ich meine.

  4. #4
    Neu an Board
    Registriert seit
    21.09.2007
    Beiträge
    26
    Bedankte sich
    0
    1 Danksagung in 1 Beitrag

    Standard

    das mit der globalen variable kann ich dir nicht sagen, aber wieso benutzt du nicht z.b. RD Add PHP um externe php seiten zu includen. Habe auch all meine externe PHP-Seiten unter 1.5 so eingebunden, die auch auf eine andere Datenbank zugreifen.

    Hatte es auch so wie du unter 1.0x mit Sessions gemacht. hab es aber wie oben beschrieben umgeschrieben und so gehts bei mir nun auch...

  5. #5
    Neu an Board
    Registriert seit
    12.10.2007
    Beiträge
    9
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Frage

    Hey thedisaster,

    danke für Deinen Vorschlag. Leider trifft es (sofern ich Dich richtig verstanden habe) nicht ganz was ich will. Mein Problem ist nicht externe PHP-Skripte in joomla einzubinden, sondern benutzerspezifische Werte aus der Joomla-Datenbank an externe Skripte zu übergeben.
    Ich habe Deine Idee sicherheitshalber nochmal getestet (allerdings mit CustomCode, macht das gleiche wie RD Add PHP), stehe aber vor dem gleichen Problem. Sollte es bei Dir klappen so Werte an das externe PHP-Skript zu übergeben, sag mir doch mal wie genau Du es gemacht hast.

    Sollte sonst noch jemand etwas beitragen können, wäre das super. Es würde mir auch schon weiterhelfen, wenn ich wüsste das ich auf dem totalen Holzweg bin. Verstehe einfach nicht warum ich nicht per globaler Variablen Werte übergeben kann. Wo kann ich was über die die Gültigkeitsbereich der globalen Variablen in Joomla 1.5 erfahren?

  6. #6
    War schon öfter hier
    Registriert seit
    05.02.2007
    Ort
    Dortmund
    Beiträge
    144
    Bedankte sich
    4
    Erhielt 31 Danksagungen
    in 28 Beiträgen

    Standard

    OK, für den Fall das du noch an der Stelle hängst: Eigentlich wollte ich dir ja schon viel früher geschrieben haben, doch ich habe es auch nicht richtig hinbekommen. Jetzt scheine ich aber eine Lösung gefunden zu haben.

    Du musst deine Variable irgendwann mit $GLOBALS['_myvar'] = 6; definieren und kannst dann später in einem Script mit $_myvar; darauf zugreifen. Vorher musst du die Variable aber mit global $_myvar; ansprechen. Gewissermaßen wird mit dem global-Statement ausgedrückt, das du auf die globale _myvar-Variable zugreifen möchtest. Diesen global-Ausdruck musst du immer in dem Script hinzufügen, indem du diese Variable verwenden möchtest.

    Sag bescheid, wenn es funktioniert.

  7. #7
    Neu an Board
    Registriert seit
    12.10.2007
    Beiträge
    9
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Beitrag

    Hi boson70,

    danke für Deine Antwort! Ich hatte gar nicht mehr damit gerechnet . Leider funktioniert diese Lösung (sofern richtig verstanden) bei mir auch nicht.

    Wenn ich ein Skript "a.php" habe innerhalb dessen ich
    PHP-Code:
    $GLOBALS['_myvar'] = 6
    den Wert 6 zuweise, so kann ich die 6 in "b.php" innerhalb einer Funktion per
    PHP-Code:
    function x()
        {
        global 
    $_myvar
        echo 
    "Variableninhalt: ";
        
    var_dump($_myvar);
        }

    x(); 
    oder direkt über
    PHP-Code:
        echo "Variableninhalt: ";
    var_dump($GLOBALS['_myvar']); 
    auslesen.

    Jedoch NUR wenn beide Skripte (a.php oder b.php) dem Joomla-Framework bekannt sind (die Skripte z.B. als Modul eingebunden sind). In meinem Falle liegt b.php zwar auf dem gleichen Server, ist aber nicht in das Joomla-Framework eingebunden .

    Trotzdem vielen Dank fürs Mitknobeln! Ich habe nachdem ich mir x Nächte um die Ohren geschlagen habe, erstmal aufgeben und eine Behelfslösung gebastel in der die Daten per Cookie über gebe. Damit bin ich aber nicht wirklich glücklich.

  8. #8
    Neu an Board
    Registriert seit
    21.09.2007
    Beiträge
    26
    Bedankte sich
    0
    1 Danksagung in 1 Beitrag

    Standard

    doppel post sry

  9. #9
    Neu an Board
    Registriert seit
    21.09.2007
    Beiträge
    26
    Bedankte sich
    0
    1 Danksagung in 1 Beitrag

    Standard

    also es gibt eine Möglichkeit externen Scripts Sessions aus Joomlaumgebung lesbar zumachen. Optimal ist es bestimmt nicht, da man das externe Script das Joomla-Firework bekannt geben muss, aber es funktioniert.

    in Joomla einbinden (Module oder RDADD etc):
    PHP-Code:
    $session =& JFactory::getSession();
    $session->set('ref'$variable); 
    externe Script:
    PHP-Code:
    define'_JEXEC');
    define'JPATH_BASE'realpath(dirname(__FILE__).'/../..' ));
    define'DS'DIRECTORY_SEPARATOR );

    require_once ( 
    JPATH_BASE .DS.'includes'.DS.'defines.php' );
    require_once ( 
    JPATH_BASE .DS.'includes'.DS.'framework.php' );
    $mainframe =& JFactory::getApplication('site');
    $mainframe->initialise();

    ....

    $session =& JFactory::getSession();
    $variable=$session->get('variable');
    echo 
    $variable
    falls du mittlerweile eine andere Lösung hast, kannst es ja mal posten

  10. Erhielt Danksagungen von:


  11. #10
    Neu an Board
    Registriert seit
    21.02.2007
    Ort
    Plaue
    Beiträge
    28
    Bedankte sich
    6
    1 Danksagung in 1 Beitrag

    Standard

    Das Problem ist, daß sowohl Joomla als auch das andere Script auf *dieselbe* Session zugreifen müssen. Du mußt also sicherstellen, daß beide die gleiche SID und dieselbe Session-DB benutzen.

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein