Sönke Tesch: Nachtrag: Lösungsansatz

Beitrag lesen

Oder meinst Du, das die session gar nicht gesetzt wird (bzw. jedesmal ne neue angelegt), da die dateien nicht untereinander kommunizieren sondern auf dem Umweg über die includierende Seite.

ich denke, hiermit lag ich nicht so falsch

In der Tat.

Erstens ist ein PHP-Skript nach außen kein PHP-Skript, sondern was immer das PHP-Skript ausgibt. Die Skripte können also nicht miteinander "kommunizieren", schließlich weiß keiner etwas von der Existenz des anderen. Es wird lediglich vom Skript auf Server 1 irgendein Text, den das PHP-Skript auf Server 2 ausgibt, eingelesen.

Zweitens bestehen Sessions aus zwei Teilen: Den Daten auf dem Server und einer Kennung im Client (die Session-ID). Die Kennung _muß_ an den abrufenden Client übermittelt werden und sie _muß_ vom Client beim nächsten Abruf wieder an den Server geliefert werden. Anders hat der Server keine Möglichkeit, die bei ihm gespeicherten Daten dem Client wieder zuzuordnen.

Dein Problem liegt genau bei Punkt 2. Das Skript von Server 2 liefert eine Session-ID aus, der abrufende Server 1 übernimmt diese ID aber nicht. Es wird also zwar durchaus eine Session angelegt, aber wenn Dein abrufendes Skript 1 dem Server 2 diese ID beim nächsten Mal nicht wieder mitliefert, kann die alte Session auch nicht wieder aufgemacht werden.

Wie Du also schon richtig erkannt hast, mußt Du irgendwie die Kennung aufnehmen und zurückgeben. Die Session-ID findest Du möglicherweise im Feld $_COOKIE, beim Abruf solltest Du die ID an die URL anhängen können.

Gruß,
  soenk.e