falsche session_id nach übergabe

penalizer

Mitglied
Hallo Leute direkt 2 Probleme an einem Tag…
Nun ja wie auch immer. Ich habe ein Problem mit Sessions.
Es sieht so aus, das ich ein CMS programmiert habe welches im nachhinein ein Shopmodul bekommen hat. Aufgrund der SSL Zertifizierung liegt das Shopmodul nun auf einer anderen
Domain. Wenn ich jetzt meine Session_id an diese Domain sende bekomme ich anstatt der
alten Session_id eine neue zugewiesen! Hier eine Kurzform meines Skriptes:


[1]Skript
PHP:
<? session_start();?>
<a href="http://meinedomain.de/get_product.php<? echo"?".ini_get('session.name')."=".session_id(); ?>">
(Verlinkung klappt auch, Session_id wird angezeigt.)


[2]Skript
PHP:
<? session_start();
echo session_id();
exit();?>

(Session_id aus der Domain ist nicht identisch mit ausgabe.)

Ich dachte immer das die Funktion selbständig nach ID´s aus Cookies oder URL´s durchsucht.

Ich hoffe Ihr könnt mir helfen. Danke im vorraus.
 
Zuletzt bearbeitet:
Du musst im 2. Script ja noch irgendwie die Session Id festlegen:
PHP:
<?php //außerdem <?php statt <? verwenden
session_id($_GET[ini_get('session.name')]);
session_start();
exit();?>
 
Spielt sich das alles auch auf ein und dem selben Server ab?

Denn eine Session ID von Server X ist auf Server Y nicht verfügbar/gültig/auffindbar.

greetz
daddz
 
Moin Leute,
erst einmal danke für Eure fixen Antworten.

->j cop.
Ich habs mal so eingebaut, funktioniert aber trotzdem nicht. es wird wieder eine neue Session id vergeben.

->daddz.
ja alles auf dem selbem Server. ich weiss einfach nicht mehr weiter. So ein Mist!
 
Ich dachte immer das die Funktion selbständig nach ID´s aus Cookies oder URL´s durchsucht.
Das tut sie auch. Daher ist J Cops Ansatz zwar richtig aber auch überflüssig.

Zu deinem Anliegen: Wie sehen denn die Sitzungseinstellungen aus und unterscheiden sie sich vielleicht in beiden Systemen? Unterscheidet sich beispielsweise der Sitzungsbezeichner, ist das Verhalten kein Wunder.
 
Hi Gumbo,
Sitzungbezeichner ist mir im momment kein Begriff aber wenn du den Session-Namen meinst, habe ich immer "PHPSESSID" verwendet. Ich habe auch schon versucht den Session-Namen manuell in der URL weiterzugeben. Im 2. Skript lautet der Session-Name ürbigends gleich. Ich arbeite gerade an einer alternative. Ich habe jetzt die verlinkung der 2. Domain (Shopdomain) auf dem gesammten Webauftritt legen lassen. Somit kann ich die Session im nachhinein starten lassen. zwar immer noch nicht wenn ich nen header(Location) benutze aber mit nem normalen href geht es merkwürdiger weise.
 
Hallo Leute.
So nicht alle wege führen nach Rom. Ich habe zwar keine Lösung für mein Skript-Problem gefunden, dafür eine alternative die gleichwertig oder vielleicht sogar sinnvoller ist. Für alle die einmal ein ähnliches Problem haben, hier die zusammenfassung.
Mein CMS hat wie o.g. ein Shopmodul welches auf dem Webspace im Ordner /shop_modul/ hinterlegt ist.
Wenn ein Kunde nun ein Produkt kaufen möchte, springt er zum shop_modul und damit zum Warenkorb. Da dieses shopmodul (und nur das shopmodul) per SSL geschützt werden sollte musste eine 2. Domain angelegt werden.
(1. Domain= meine-domain.de | 2.Domain= shop.meine-domain.de).
Nun war es so das beim betreten der 1. Domain eine Session erstellt wurde, die beim betreten der 2.Domain neu definiert wird. Ergo-> Ware wird nicht in den Warenkorb gelegt. Nachdem ich mir gedacht habe das es sowieso nur Sinn macht eine Session zu starten wenn Sie auch benötigt wird habe ich Sie nun erst in der 2. Domain starten lassen. Da ich nun aber eine weiterleitung per header(Location) benutzt hatte, klappte es trotzdem nicht. Nun noch schnell den Location befehl durch nen guten alten "meta refresh" ersetzt und viola!

Vielen Dank für Eure Hilfe!
Es macht Spass mit Euren Denkanstößen zu lernen.

Gruß aus Essen, Pen
 
Hi Gumbo,
habe ich noch nicht ausprobiert, da ich es für Sinnvoller halte, user ohne Cookies auch die möglichkeit zu geben den Shop zu nutzen. Aber es wäre auch eine alternative, Danke.
 
Cookies gelten jedoch als sicherere Übertragungsmethode der Sitzungs-ID als der URL. Zumindest für Benutzer mit Cookie-Unterstützung solltest du die Übertragung darüber abwickeln.
 
Zurück