session weitergeben über header("location:..."); klappt nicht
daniel
- php
0 ich0 daniel
0 Sven Rautenberg
hallo alle zusammen,
ich hätte mal eine frage bzgl. php-sessions und dem weiter-transport von variablen durch diese...
ich initialisiere eine session, und speichere eine variable darin. sofort danach leite ich den besucher mit einem header("location:..."); weiter.
kann es sein, daß dadurch die session nicht weitergegeben wird?
das sieht im code so aus:
if(mysql_num_rows($qry)==1 AND $result['levelID']==0) { session_start(); session_register("login"); header("Location: user.htm"); }
auf der entsprechenden folgeseite, der user.htm habe ich nun kein $_SESSION['login'] bzw. $login mehr....???
vielen dank für eure hilfe, grüße, daniel
Auf der Folgeseite musste natürlich auch oben <?php session_start() ?> stehen haben.
Hi,
ähem..... naja, daran habe ich schon gedacht.
das steht da schon ;-)
Moin!
ich initialisiere eine session, und speichere eine variable darin.
sofort danach leite ich den besucher mit einem header("location:..."); weiter.kann es sein, daß dadurch die session nicht weitergegeben wird?
Ja.
Punkt 1: Hinter "Location:" muß eine vollständige URL kommen, keine relative. Das ist das erste, was schlecht ist.
Punkt 2: PHP schafft es zwar bei gewissen Einstellungen, vorhandene Links und Formulare mit der Session-ID anzureichern (nennt sich dann trans_sid oder so), aber bei headern versagt das offensichtlich. Also mußt du in die Weiterleitung manuell die mögliche Session-ID eintragen. Dazu gibts die Konstante SID.
header("Location: ".$_SERVER['HTTP_HOST']."/absolute/url/user.htm?".SID);
- Sven Rautenberg