Sessions und unterschiedliche Rechner / Domains
Gerd H.
- php
0 Gerd H.0 Hagen0 Johannes Zeller
Hallo Forum
ich möchte meine Seite erweitern und dafür gleich eine Subdomain anlegen.
Das Interface soll sich für Mitglieder ändern - allerdings sollten sie eingeloggt bleiben, auch wenn sie auf der Subdomain surfen.
So solls aussehen:
http://domain.de
http://subdomain.domain.de # Neuer Bereich
Leider werden die Sessions lokal auf dem Server gespeichert, soweit ich weiß, User müssten sich also erneut anmelden?
Domain und Subdomain sollen auf unterschiedlichen Systemen liegen(Traffic-Gründen) und der neue Bereich auf MySQL-Server des Servers domain.de zugreifen.
Hoffe ihr versteht das und könnt mir Anhaltspunkte geben, wie ich das hinbekomme, dass User weiterhin eingeloggt bleiben. Besten Dank
Naja ich bin ein wenig weiter gekommen:
session.cookie_domain habe ich jetzt domain.de und subdomain.domain.de foglendermaßen eingetragen:
session.cookie_domain = domain.de, subdomain.domain.de
Funktioniert leider noch nicht. Fehlt noch was?
Mal ein anderer Gedanke, warum versuchst du nicht die Zugangsberechtigung über Parameter im Hyperlink hinzubekommen?
Grundlage: auf beiden Systemen muss sich eine identische Nutzerdatenbank befinden.
Der Benutzer meldet sich im ersten System an. Will er auf das zweite System/Server wechseln, muss er einen Link mit entsprechenden Parametern nutzten, die den Zugriff zulassen (der Link wird natürlich für jeden Nutzer generiert).
Ein Parameter wäre der Nutzername, ein weitere ein 'Key'. Dieser Key (Hash-Werte) wird zusammengesetzt aus dem Kennwort des Nutzers und einem weiteren Kennwort des Servers, ggf. noch der Session-ID des Nutzers. Damit kann das zweite System/Server prüfen, ob der Nutzer zugangsberechtigt ist.
Hallo Gerd,
soweit ich weiß, bietet das Session-Modul von PHP keine Möglichkeit, domainübergreifende Sessions zu realisieren. Du müsstest dir also wahrscheinlich selbst etwas programmieren oder gucken, ob du eine fertige Lösung findest.
Mit Cookies dürfte es schwierig werden, da Browser Cookie-Daten immer nur an die Domain schicken, die den Cookie auch gesetzt hat.
Ansonsten brauchst du eine Möglichkeit, die Sessiondaten an einem Ort zu speichern, der von beiden Servern zu erreichen ist, z.B. die MySQL-Datenbank. Du schriebst ja schon, dass beide darauf zugreifen können sollen.
Das Problem wird wahrscheinlich die Mitnahme der Session-ID von einer zur anderen Domain sein. Du könntest URL-Parameter verwenden oder versuchen immer für beide Domains einen Cookie zu setzen, z.B. über ein von der jeweils anderen Domain eingebundenes 1-Pixel-Bild.
Ich hoffe, das hilft dir weiter,
Johannes