Hallo Christian.

Leider interpretierst du die Situation ein wenig falsch.

Dein PHP-Fragment ist richtig, damit werden Daten in die Session geschrieben 
bzw. wieder daraus gelesen. Der erste Parameter kann die Werte "ses" oder 
"user" haben, wobei "ses" die Clientsession und "user" benutzerspezifische 
Daten meint. Sobald du mit angemeldeten Frontendbenutzern arbeitest hast du 
über den Slot "user" die Möglichkeit, benutzerspezifische Sessiondaten so zu 
speichern dass sie dem gleichen Account nach dem nächsten Login wieder zur 
Verfügung stehen. Anschaulich könnte man z.B. den Warenkorb eines Shops dort 
ablegen.

Deine Idee, auf die Daten via Cookie zugreifen zu können ist grundsätzlich 
falsch. Man verwendet zwar im Regelfall ein (einziges) Cookie (clientseitig) um 
eine Session (serverseitig) zu identifizieren, damit ist die Beziehung zwischen 
Cookie und Session aber auch schon vollständig erschöpft.

Cookiedaten liegen im Client. Bei jedem Click sendet der Browser seine 
kompletten Cookiedaten zum Server ("hier, das merk ich mir grade von deiner 
Domain") und die Antwort des Servers kann Schreibanweisungen ("der Cookie X hat 
ab jetzt folgenden Inhalt") zum Client zurück transportieren. Deshalb kann man 
in PHP auf Cookies zugreifen. Kleine Randbemerkung: Allerdings verbieten sich 
aus diesem Grund große Datenmengen im Cookie: Der Traffic! Der Browser kann 
nicht wissen, mit welcher vom Server angefragten Datei der Server auch 
Cookieinformationen haben möchte (sprich: Mit welcher Datei der Server die 
mitgelieferten Cookieinhalte auslesen möchte und bei welcher Datei der Server 
keine Cookies erwartet). Der Browser schickt deshalb bei wirklich jeder Anfrage 
wirklich alle Cookiedaten mit. Das wiederum bedeutet, dass 4KB Cookiedaten und 
100 einzelnen Dateien einer Seite (neben der HTML-Seite noch Bilder, JavaScript 
und CSS) fast ein halbe MB an unnützem Traffic (vom Client zum Server, also die 
vermutlich langsamere Richtung) pro Click erzeugen. Also: Die Cookies um 
Himmels Willen klein halten.
Da die Cookies im Client liegen kann man sie natürlich auch dort auslesen und 
schreiben, eben via JavaScript.

Sessiondaten dagegen liegen auf dem Server. Dort können sie zunächst mal fast 
beliebig groß sein, sofern die Festplatte des Servers oder eine 
Konfigurationseinstellung das nicht limitieren. Auf den Traffic hat das keine 
Auswirkung, der Client kommt ohnehin nicht ran. Und das ist auch der relevante 
Punkt: Was in der Session liegt ist *nicht* via JavaScript verfügbar.

Natürlich kann ich durch ein eigenes Programm Daten zwischen Cookie und Session 
hin und her schaufeln. Das müsste ich aber selbst tun.

Zunächst bietet PHP einen eigenen Sessionmechanismus: Die $_SESSION-Variable. 
Dort kann man Dinge ablegen und beim nächsten Click findet man sie dort wieder.
Die TYPO3-API (der von dir genannte Teil jedenfalls) abstrahiert nicht nur den 
Zugriff auf $_SESSION. Was über die API in den fe_userAuth geschrieben wird 
landet nicht direkt im $_SESSION-Array sondern in der TYPO3-Datenbank.
Das wiederum bedeutet, dass du auch mit einem eigenen, freischwebenden 
PHP-Script nicht auf die in TYPO3 geschriebenen Sessiondaten zugreifen kannst, 
sofern du nicht von Hand den notwenigen Datenbankaufruf nachvollziehst.


Was genau hast du denn vor? Welche Daten möchtest du speichern und was 
anschließend wie auswerten?


Gruß,



Stephan Schuler
Web-Entwickler

Telefon: +49 (911) 539909 - 0
E-Mail: stephan.schu...@netlogix.de
Website: media.netlogix.de


--
netlogix GmbH & Co. KG
IT-Services | IT-Training | Media
Andernacher Straße 53 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: i...@netlogix.de | Internet: http://www.netlogix.de

netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt



________________________________________
Von: typo3-german-boun...@lists.typo3.org 
[typo3-german-boun...@lists.typo3.org]" im Auftrag von "Christian 
Tauscher [christian.tausc...@media-distillery.de]
Gesendet: Freitag, 17. Februar 2012 20:43
Bis: typo3-german@lists.typo3.org
Betreff: [TYPO3-german]  session variable

Hallo zusammen.

Mit

$GLOBALS["TSFE"]->fe_user->setKey('ses', 'meinName', 'daten');
$GLOBALS["TSFE"]->fe_user->setKey('ses', 'meinName');

kann man in TYPO3 elegant Daten in einer Session zwischenspeichern/lesen.

TYPO3 schreibt das wohl alles in das domain-cookie fe_typo_user.
Vermutlich wird das Cookie noch mit dem encryption Key behandel, so das
man nichts lesen kann.

Jetzt hab ich ein paar JavaScript Zeilen geschrieben die ihre Daten auch
in einer Session speichern.
Später möchte ich die Daten in einer EXT auswerten.

Wenn ich nun einfach in mein JavaScript das cookie fe_typo_user
überschreibe bin ich glücklich, solange TYPO3 nicht auf die Idee kommt
etwas anderes darin zu speichern.

Wenn mein JavaScript nun sein eigenes Cookie schreibt, kommen sich mein
Script und TYPO3 nicht in die Quere,aber dann steh ich vor dem Problem:
wie lese ich das Cookie dann innerhalb meiner Extention aus? Die TYPO3
Funktionen bieten mir keine Möglichkeit einen anderen/zusätzlichen
Cookie-Namen zu definieren, und wenn meine EXT endlich aufgerufen wird,
kann ich kein Cookie mehr auslesen...

Wäre schon wenn ihr mir auf die Sprünge helfen könntet.

Danke,

Christian.
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an