Ergebnis 1 bis 3 von 3

Thema: Sessions auf (Sub-) Domains übergreifend nutzen

  1. #1
    Contao-Nutzer Avatar von xava
    Registriert seit
    13.06.2012.
    Beiträge
    22

    Standard Sessions auf (Sub-) Domains übergreifend nutzen

    Hallo beisammen,

    ich arbeite aktuell an einem Modul, welches in einer Contao-Installation eingesetzt werden soll, in der sich eine Domain und mehrere Subdomains befinden:
    • domain.tld
    • sub1.domain.tld
    • sub2.domain.tld
    • ...

    Mein Problem ist nun, dass ich bestimmte Informationen für den aktuellen Besucher in Sessions speichere und diese auf der Domain und allen Subdomains benötige. So wie ich es bis jetzt verstanden haben, sind jedoch in Contao von Haus die Sessions immer an eine Domain bzw. Subdomain geknüpft (was ja im Prinzip auch sinnvoll ist, da es im gewöhnlichen Multi-Domain-Betrieb sonst zu Konflikten kommen könnte).

    Auf der Suche nach einer Lösung bin ich bereits auf folgende Diskussion gestoßen:
    https://github.com/contao/core/issues/3233

    In 03cd541 wurde daraufhin der Hook getCookie() hinzugefügt, jedoch weiß ich nicht wie ich damit arbeiten soll.

    Sollte dies die Lösung sein oder jemand einen anderen Weg haben, so würde mich über eure Hilfe sehr freuen :-)

    LG

  2. #2
    Contao-Nutzer Avatar von xava
    Registriert seit
    13.06.2012.
    Beiträge
    22

    Standard

    Ok, ich bin einen Schritt weiter, allerdings ist dies leider nicht die Lösung für mein Problem. Trotzdem möchte ich es kurz erklären, falls jemand anderes auf diesen Thread stößt und das Vorgehen nutzen kann.

    Möchte man die Cookies, die gesetzt werden, wenn sich ein User im Frontend oder Backend anmeldet beeinflussen, kann man bspw. folgendermaßen vorgehen:

    system/modules/MeinModul/config/config.php
    PHP-Code:
    $GLOBALS['TL_HOOKS']['setCookie'][] = array('DomainCookie''setDomainCookie'); 
    system/modules/MeinModul/config/autoload.php
    PHP-Code:
    ClassLoader::addClasses(array
    (
        
    'Contao\DomainCookie' => 'system/modules/MeinModul/classes/DomainCookie.php'
    )); 
    system/modules/MeinModul/classes/DomainCookie.php
    PHP-Code:
    namespace Contao;

    class 
    DomainCookie extends \Frontend
    {
        public function 
    setDomainCookie($objCookie)
        {    
            
    $objCookie->strDomain '.domain.tld' // Hier die Domain ändern, anpassen, etc.
            
    return $objCookie;        
        }


    Was ich jedoch eigentlich erreichen möchte ist, dass die Informationen, die ich über die Contao-interne set()-Funktion in einer Session speichere, auch auf allen Domains und Subdomains in einer Contao-Installation abrufbar sind.

    Beispiel
    PHP-Code:
    // Irgendwo auf domain.tld
    $this->Session->set('foo''bar');

    // Irgendwo auf sub1.domain.tld
    $this->Session->get('foo'); 
    Hat jemand eine Idee wie ich dies zu erreichen ist?
    Geändert von xava (18.06.2013 um 20:01 Uhr)

  3. #3
    Contao-Nutzer Avatar von xava
    Registriert seit
    13.06.2012.
    Beiträge
    22

    Standard

    Ich habe die Lösung. Einfacher und Contao-unspezifischer als ich erwartet hätte. Ich habe folgende Anpassung in der php.ini vorgenommen:

    php.ini
    Code:
    session.cookie_domain = .domain.tld
    Damit ist die Session auch unter allen Subdomains verfügbar!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

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