Hej, jag gör en sida där jag vill kolla vilket språk (svenska, engelska el. tyska) användaren vill se. Innehållet ska infogas via ASP in i HTML strukturen beroende på valt språk.
Det finns olika möjligheter jag kan kolla i följande ordning varje gång en besökare kommer in på en sida:
1. Antingen kan de komma till sidan via en länk med en parameter i HTTP-head, typ: start.asp?lang=en. Om det finns det så sätter jag session och cookie till valet.
Om ingen parameter finns kollar jag:
2. En session-variabel kan redan ha satts på en annan sida inom sajten. Jag kollar om session variablen finns.
Om ingen session variabel finns så kollar jag:
3. Användaren kan ha varit på sajten tidigare. Jag kollar det genom att se om det finns någon cookie med språk-val. Om det finns det så sätter jag session till valet.
Om varken parameter i länken, session eller cookie finns så måste jag redirecta användaren till en sida (kallad default.asp) där han måste välja språk genom att klicka på en av flaggorna.
Session variabeln som alla dessa alternativ resulterar i bestämmer sedan vilket språk som ska infogas ur en include fil där alla språk-strängar ligger.
I stora drag har jag implementerat den kod som krävs för att kolla detta. Men jag får nåt fel med cookies. Ser någon felet?
<%
If Request.QueryString("lang") = "" Then
If Session("session_lang") = "" Then
If IsEmpty(Response.Cookies("cookie_lang")) Then
Response.Redirect("default.asp")
Else
''Här blir det något fel. Kanske läser jag inte cookies rätt.
Session("session_lang") = Response.Cookies("cookie_lang")
End If
End If
Else
Session("session_lang") = Request.QueryString("lang")
Response.Cookies("cookie_lang") = Request.QueryString("lang")
Response.Cookies("cookie_lang").Expires = "24 Dec 2008"
End If
%>
'''Sedan kallar jag på:
<!--#include file="language_content.inc"-->
'''I denna finns en Select Case sats som genom att kolla session-language variabeln avgör vilket språk som alla variabel strängar ska sättas till.
Hoppas någon ser vad jag har gjort för fel.