daniel: session weitergeben über header("location:..."); klappt nicht

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

  1. Auf der Folgeseite musste natürlich auch oben <?php session_start() ?> stehen haben.

    1. Hi,

      ähem..... naja, daran habe ich schon gedacht.
      das steht da schon ;-)

  2. 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

    --
    Signatur oder nicht Signatur - das ist hier die Frage!