Avatar billede solari Nybegynder
24. maj 2005 - 13:18 Der er 4 kommentarer og
1 løsning

redirect header snyder session

Hej alle eksperter

Jeg har et problem:

jeg har en webside (form.php) som indholder en form (metod=post). Når man submit'er form'en loader man den samme webside (form.php) som håndtere infomationen php kode ender med:
header("Location: http://www.domain.dk/index.php");
hvis jeg bruger firefox 1.0.4 og Opera 8.0 fanger den ikke session variblerne når den starter index.php. Php modtager session_id (som cookie) og id'en er den rigtig, men variablerne bliver ikke sat.

Hvis jeg bruger IE 6.0.2 så virker det fint.

Hvis jeg køre sekvensen (form.php -> form.php -> index.php) en adgangen så virker det fint på alle 3 browser.

Hvis jeg bruger javascript i stedet:
print("<script type=\"text/javascript\">window.location=\"www.domain.dk/index.php\"</script>");
så er der ingen af de 3 browser der virker.

Hvis jeg bruger:
header("Location: http://www.domain.dk/index.php");
på en side uden at der ingår en submit post så virker redirect'en fint på alle 3 browser.

Det skal siges at jeg under hver side load bruger:
session_regenerate_id();
hvis jeg disabler den så virker det på alle 3 browser.
Dog er dette en løsning jeg ikke kan bruge.

Til og med skal de siges at meget få gange er det lykkes firefox at redirect uden problemer (har ingen ide til hvorfor).

websiden ligger på en IIS server.
Jeg tror umeldtbart at fejlen kan løses med den rigtige header.

Hvis der er en der har en ide til at løse problemet så er jeg lytter øre. Kan ikke helt selv se hvad der går galt.

Hilsen en total forvirrede web program'at'ør
Avatar billede Slettet bruger
24. maj 2005 - 13:37 #1
Må vi se noget kode?
Avatar billede solari Nybegynder
24. maj 2005 - 13:54 #2
Jep finder det lige
Avatar billede solari Nybegynder
24. maj 2005 - 14:05 #3
Det godt det er menneskelig at lave fejl.
lagde lige mærke til at jeg ikke kørte:
session_write_close();
selv om at php skulle gemme og slukke til sidst sååå virker det bedre hvis man lige gør det for den.
Nu virker det som det skal.

Mærkeligt at firefox og opera fejlede på det og ikke IE det forstår jeg nu ikke helt.

kan man give lidt drikke point til dig el_barto det var da jeg skulle vise koden til dig at jeg lige opdagede det :-).
Avatar billede Slettet bruger
24. maj 2005 - 14:09 #4
Ellers tak, du løste jo selv problemet og det er det der tæller (for mig i det mindste)
Avatar billede solari Nybegynder
24. maj 2005 - 14:38 #5
helt enig el_barto der er ikke noget være end at side fast i noget kode.
Tilgengæld er det et fedt kick man får, når man løser det.

Til andre der har et problem med at session variablerne ikke bliver sat.
Så er løsningen måske at i har glemt at køre session_write_close() når i er færdig med  session variblerne.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester