Zum Inhalt springen

session vars in typo3

Erstellt am 25. Februar 2005 · 6 Antworten · letzte Antwort am 26. Februar 2005

Tags: Frage

blattgruen ·

Hi alle miteinander,

ich hoffe ich habe das richtige Forum für meine Frage erwischt, also nehmts mir bitte nicht übel, wenn ich falsch liege.

Ich habe mal folgende Frage:

ich schreibe gerade ein php script, was in eine typo3 site eingebunden werden soll. Das script selbst soll nicht dauerhaft verfügbar sein, also kann ich es als Contentpart o.ä. einbinden, jedoch brauch ich diverse $_SESSION Variablen, die permanent verfügbar sein müssen (userauth etc.).
Diese Variablen muss ich ja vor jeglichem output einbinden, damit sie funktionieren: wo mach ich das am besten, dass typo3 nicht meckert und meine vars verfügbar sind?

Danke schonmal im vorraus.

blattgruen

Spyker ·

in deinem PHP script kannst du die Vars mit

$_SESSION['blub'] = 'bla';

setzen wie du willst, weil nur das session_start(); vor ausgabedaten aufgerufen werden muss und das macht Typo3 bereits selber.

Also kannst du in deinem Script deine vars einfach setzen und benutzen.

MfG
Tim

blattgruen ·

Danke für deine Antwort.

Also was die vars aus meinem script betrifft bin ich jetzt schlauer, jedoch müssen die auth variablen überall verfügbar sein, und da hakts grad drann.

Ich brauche auf der kompletten Seite die Variablen der phpbb2 user Authentifizierung.

Dies bewerkstelligt man, wenn man in die Index folgenden Code einfügt:

<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Meine Seite';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);



/***** Inhaltsbereich ******/



//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>

(Beispiel aus phpbb2.de)

Das klappt auch local ohne Typo sehr gut, jedoch steh ich auf dem Schlauch, wo ich jenen Code in Typo unterbringen muss.

Wenn ich diesen in Typos index.php einfüge dann kann ich nebst einigen Session Fehlermeldungen die arrays ausgeben, also vom Grundsatz her scheint es machbar zu sein. Aber ich komm einfach nicht auf die totsichere Methode, da dieser Code halt nicht nur in einem script eingeunden werden muss, sondern "global".

Weisst du da vielleicht nen Rat?

Danke.

blattgruen

Spyker ·

also.... ich würde auf keinen fall datein verändern, die zum Core gehören. Du kannst zusätzliche FUnktionen z.B. in der neben die localconf.php im typo3conf ordner legen und dann in die localconf.php ein Include machen.

Die localconf wird bei jedem Seitenaufruf geladen.

Ist aber nicht grade sauber gelöst. Kannst das auch in eine PHP datei packen und die dann im Typo3 - Template laden.

Ich hoffe das ist das was du meinst...

MfG Tim

blattgruen ·

Letzteres habe ich zu allererst versucht (via div tag im tmpl file ganz oben eingebunden und dann mit:

  subparts,meinscript = PHP_SCRIPT_EXT
  subparts.meinscript.file = fileadmin/template/main/scripts/meinscript.php

versucht via ts zu holen. Da war nichts zu holen (array leer oder header fehler).

Gibt es da vielleicht nen ganz allgemeinen TypoScript Befehl mit denen man einfach nur Dateien includen kann (ohne, dass diese im Template File verankert sein müssen)?

Das mit der localconf werd ich direkt mal versuchen. Thx für die Idee.

Spyker ·

Also... es war ja nie die rede davon das du das ganze in die Seite laden willst. Oder ist in deiner PHP auch ausgabetext, was du im Template anzeigen willst.

1.) Du hast eine Datei in der du reines PHP hast und z.B. nur Session setzen willst, ohne groß was auszugeben.
Dann sind die beiden obengenannten lösungen möglich, wobei du das nicht in das TEMPLATE includen must.

du kannst z.B.
page.10 = PHP_SCRIPT
page.10.file = fileadmin/scripts/my_script.php

Wenn dann in der my_script.php was in der $content variable in PHP stehen würde, wird das ganze auch noch ausgegeben.

Die Funktion PHP_SCRIPT_EXT würde ich da dann gar nicht benutzen.

2.) Wenn du einen script hast der auch ausgabe machen soll dann kannst du es entweder so machen wie oben beschrieben ist oder du machst ein Kleines FrontEnd Plugin das dir die ausgabe gesalltet, wobei wenn es was ausgeben soll die Zweite Möglichkeit bestimmt die noblere ist.

Wenn ich jetzt noch eine möglichkeit nicht ausgezählt habe, dann weiß ich nicht weiter *scherz*.

Ich hoffe ich konnte dir mit den paar Worten weiter helfen.
Beste Grüße,
Tim | http://t3.fruit-lab.de

blattgruen ·

Ich hab quasi 2erlei paar Schuhe: einmal das Authentifizierungsscript, in welchem kein Output vorhanden ist, sondern nur die Session definiert wird (phpbb2 auth), und einmal ein script, welches auf dieser Authentifizierung aufbaut und jede Menge Output liefert.

Den Output des zweiten bekomm ich auch angezeigt, aber ich bekomm halt die Authentifizierungsgeschichte nicht zum laufen; ich habe gemerkt, dass es nebensächlich ist wie ich das script "include", es will mir einfach nicht die Vars zur Verfügung stellen unter Typo.

Aber das ist schon ziemlich spezifisch, von daher Danke, weil ich jetzt auf alle Fälle mal nen Überblick habe, was ich für Möglichkeiten hab Code in Typo zu bekommen 😉.

Schönes Wochende!

blattgruen