28. januar 2006 - 15:37Der er
17 kommentarer og 2 løsninger
Spørgsmål om sessions eller cookies
Hej Eksperter...
Jeg er ved at lave et site med mulighed for at vælge mellem sprog.
Som det er programmeret nu laver sitet først en søgning i en tabel for at se om der er aktive sprog, og hvis der er så viser den et landeflag for de sprog der er aktive.
Når man så klikker på det pågældende flag kommer man så til index siden hvor det pågældende sprog er aktivt. Måden jeg har gjort det på er at jeg har tilføjet en href til hvert flag, som indeholder en variabel med den landekode. Når man så klikker på det flag og er på index siden er der så en variabel i adresselinien (f.x. index.php?lang=dk) Så har jeg så på index siden lavet en variabel som med $_GET henter den variabel fra adresselinien og sætter den som en session.
Problemet er jo så at når man klikker videre fra index siden kan den jo ikke få den variabel igen (med mindre man tilføjer "lang" til hvert link).
Kan man løse det problem sådan forholdsvist nemt, evt. med cookies (som jeg intet ved om)?
Det er jo også det jeg gerne vil :D Men den session forsvinder åbenbart hvis jeg klikker på et link. Jeg har en session_start(); på hver side... eller det vil sige jeg har en på index siden som bare kører videre, da jeg åbner de andre sider på selve index siden
Men den "lang" variabel i adresselinien kommer jo ikke med hvis jeg klikker på en underside... så bliver det jo bare ?show=underside... Så bliver session variablen vel bare "ingenting"?
Jeg kan sagtens eliminere problemet med at tilføje "&lang=land" på hvert link, men hvis det kan undgås vil jeg jo gerne det... :D
Man skal altid tænke sig grundigt om, inden man vælger at bruge sessions. En session er en fil, der ligger i en mappe på serveren. Når der sættes en session, skrives en sådan fil og navnet bliver gemt i en cookie på klienten (som er en fil på klient-maskinen) - eller sendes med i URL'erne. Når brugeren tilgår en ny side, hvor variablerne i den pågældende session ønskes læst, skal serveren først læse navnet og derefter ned og rode efter den i mappen, åbne den, læse den og lukke den igen.
Da brugeren ikke kan manipulere med sessionfilen, er det en god metode til følsomme info - men til et sprogvalg er en cookie langt at foretrække. Den vil performe langt bedre :)
Det er da meget interessant det du skriver olebole, men som jeg også tidlligere har skrevet ved jeg intet om cookies... derfor valgte jeg at bruge sessions, da det for mig ville være det nemmeste... er det ligeså nemt med cookies da?
- men husk, at kagen sættes i HTTP-header'en, hvorfor der ikke må være outputtet én eneste linje, før den sættes ... så bliver der smidt en 'Header already sent' fejl ;o)
Synes godt om
Ny brugerNybegynder
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.