PHP session data tabt.

Tags:    php

<< < 12 > >>
Kære Alle,

Det er meget muligt at dette emne er blevet dækket før, men jeg har endnu ikke fundet en løsning på det.

Problem:

...
session_start();
$_SESSION['var'] = 'foo';

header(location: "...");
...

Den ovenstående kode vil ikke sende sessions data med over til den nye side da det ikke er altid at php/browseren når at få sendt alt data med over til den nye side.

Der er forskellige måder der efter sigende fungerer for at få løst dette problem.

bla. ved at skrive session_write_close(); INDEN man redirecter. Dette har dog ikke fungeret for mig.

Er der nogen der har nogle løsningsforslag, for nu har jeg siddet med det her i 2 dage uden held :/

Tak for det.



13 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
Hmm det virker altså mærkeligt, jeg har et login system hvor jeg gør nogle lunde samme kommando og det virker helt fint.

Forskellen er bare at mit sker i en "IF" sætning og så overfører den noget over i en database samtidigt, ellers helt samme kommando.



session_destroy() må da ikke bruges før man logger ud? Ellers kan man jo ikke bruge $_SESSION-variablerne til en fløjtende fis?



Prøv disse to koder... start med page1.php og skift derefter til page2.php
Fold kodeboks ind/udKode 


Hvis dette virker som det skal, er der noget galt i din kode, et eller andet sted.

Hvis det ikke virker er det serveropsætningen den er gal med.



Indlæg senest redigeret d. 04.06.2007 15:33 af Bruger #10216
Evt. kan du prøve:
header("Location: test.php?PHPSESSID=".session_id());



Du skal have session_start(); på den nye side også. Så burde du virkelig få alle $_SESSION-var's med over.



Du skal have session_start(); på den nye side også. Så burde du virkelig få alle $_SESSION-var's med over.


Tak for svaret, men det har jeg også ;)




Hmm det virker altså mærkeligt, jeg har et login system hvor jeg gør nogle lunde samme kommando og det virker helt fint.

Forskellen er bare at mit sker i en "IF" sætning og så overfører den noget over i en database samtidigt, ellers helt samme kommando.


Jamen jeg har prøvet flere forskellige ting.

Jeg har endda prøvet at "flushe" variablerne til browseren, desværre uden held.

Det skal lige siges at det problemet opstår i samtlige browsere, IE, Mozilla, Opera.



Ved ikke om din session kan ved en fejl komme til at lave rod i resten af dit dokument hvis du ikke bruger funktionen session_destroy. (Jeg ved det ikke men måske)



session_destroy() må da ikke bruges før man logger ud? Ellers kan man jo ikke bruge $_SESSION-variablerne til en fløjtende fis?


Altså session_destory resetter alt data så den er rimelig meget udelukket, så skulle det være session_unset hvis noget, men det hjælper jo heller ikke i og med jeg skal have data med over på den anden side HVER eneste gang den redirecter og ikke hver 5 gang :)



Bare af nysgerrighed, har du tjekket at cookies er slået til i dine browsere?



<< < 12 > >>
t