Martin wrote in dk.edb.internet.webdesign.serverside.asp:
> > Hvem har sagt, at den skal være cookiefri ... og er vedkommende klar over,
> > hvad forskellen er på en session og en cookie ?
>
> Det med at den skal være cookiefri er simpelthen et krav... men hvis det
> skal være på den måde så lad os bare sige det er mig :)
>
ok ... jeg forstår blot ikke hvorfor. Jeg kan se det, hvis det er "almindelige"
cookies ... men jeg kan ikke lige umiddelbart se, hvad der skulle tale for ikke
at anvende session-cookies.
> > 1. Indsæt brugerens login-navn i den række vedkommende indsætter. Med
> > passende valg af primære nøgler i din tabel, så kan det ikke lade
> > sig gøre at indsætte flere rækker.
>
> Ja det var selvfølgelig en mulighed. Hvis det ikke bare lige var fordi man
> skal kunne indsætte flere rækker. Bare kun når man har logget ind (på et
> senere tidspunkt) og ikke bare går tilbage via back-knappen og "klikker gem"
> igen. Altså hvis man et senere tidspunkt skal have opdateret det der står i
> databasen er der mulighed for dette -(og de gamle rækker må ikke slettes)
som jeg sagde: "med passende valg af primære nøgler". Du kan jo vælge ved login
at give din bruger en midlertidig (meget unik) værdi, som du så kan smide med i
din URL - altså en slags session-variabel - så du udover brugerens login-ID
tager endnu en værdi med rundt på dennes tur på dit website. Den indsætter du
så sammen med brugerens loginID (eller hvordan du nu genkender din bruger
undervejs) i din række. Hvis du så vælger at lave den primære nøgle i din tabel
som værende disse to felter, så kan der kun indsættes i databasen én gang under
et login. Når så brugeren logger ind igen, så giver du hende et nyt unikt ID,
og så kan der igen indsættes. Hvis du kombinerer det med at indsætte disse
unikke IDs i en tabel - så du holder øje med hvilke værdier der er blevet
genereret af din applikation - så gør du det meget svært (bevidst) at indsætte
flere rækker i din tabel ... selvom man har fået at vide, at man ikke må.
>
> > 2. Efter du har indsat en række for en bruger, så sætter du en session på
> > klienten - altså noget i retning af
> >
> > con.execute("INSERT INTO ...")
> > session("insert") = "completed"
>
> JA det var så det med de kager. Correct me if i'm wrong men det kræver vel
> en cookie
>
jeps ... det er korrekt. Husk i øvrigt på, at de fleste browsere tillader
session-cookies - selvom cookies som sådan er slået fra (IE,NN,Opera)
> > ... hvordan holder du egentlig øje med, hvem brugeren er, når vedkommende
> > er logget ind, hvis du ikke må anvende cookies ?
>
> Det gør jeg med at kaste rundt med variable siderne imellem (der er ikke så
> mange) via url.
husk også på, at variable i URL giver "onde" brugere store muligheder for at
komme ind på dit website. Hvis du fx checker på, om man er logget ind via en
querystring som .asp?login=1 ... så kan man jo komme ind på dit site ved blot
at skrive dette i en URL (lidt simplificeret, men jeg håber du kan se, hvor jeg
vil hen). Det samme kan siges om at videreføre status på indsættelse i database
i URL [1].
> Det er rodet det ved jeg men hvis der er andre bud på
> hvordan man gør det cookiefrit så vil jeg meget gerne høre. Men på din
> udmelding Jesper kan jeg høre det er der formentligt ikke :(
>
> OG tak for svarene Jesper -en fornøjelse at møde en så hjælpsom person
>
velbekomme ... jeg sad alligevel med tømmerænd og forsøgte at komme i gang med
dagen :)
[1] Hvis du overfører "vigtige" parametre i din URL, så vil jeg foreslå dig at
BASE-64 encode strengene ... eller at lave en hash-værdi af værdierne. Så gør
du det i hvert fald noget mere besværligt at fake et login/indsættelse på dit
site.
Jesper Stocholm
http://stocholm.dk
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials