webForumDet fria alternativet

Problem med session

18 svar · 347 visningar · startad av henkeny

henkenyMedlem sedan maj 200152 inlägg
#1

Har ett underligt problem, säkert simpelt, men men.....

Har en inloggningssida baserat på ett formulär med dels username och dels password. Efter inloggningen är det meningen att en session ska skapas med användarnamnet som värde. När man är inloggad ska det sedan stå på en annan sida vem som är inloggad. Koden där session sätts ser ut så här:

<% '=========================================================================== %>
<% ' Kontrollera användarnamn, lösenord och behörighet %>
<% '============================================================================ %>

<% If Request.QueryString("add") = "yes" Then %>

<% Check = "SELECT * FROM users"
RecSet.Open Check, Connect, adOpenStatic, adLockOptimistic

X = FALSE

Do Until X = TRUE OR RecSet.EOF

If RecSet("Username") = Request.Form("Username") Then
X = TRUE
Exit Do
End If

RecSet.MoveNext

Loop

If X = TRUE Then

	Y = FALSE
	Do Until Y = TRUE OR RecSet.EOF

	If RecSet("Password") = Request.Form("Password") Then
	Y = TRUE
	Exit Do
	End If

	RecSet.MoveNext

	Loop

End If %\>

<% If X = FALSE Then
Response.Write "You have entered a wrong username!" %>

<p>
<% ElseIf Y = FALSE Then
Response.Write "You have entered a wrong password"

End If %\>

\<% If X = TRUE AND Y = TRUE Then 

Session("username") = Request.Form("username")
Session("password") = Request.Form("password")

Session("inlogg")   = true
Response.Write "\<b\>Your status is now logged in, with username: \<i\>" & Session("username") & "\</i\>\</b\>"
%\>

\<% End If %\>
\<% End if %\>

Detta funkar bra, och även Response.Write raden som skriver ut vad man är inloggad som fungerar.

Men när jag gör en liknande sats på en annan sida så funkar det inte, då ser det ut så här:

<%
If Session("inlogg") = true then
Response.Write "Online: <i>" & Session("username") & "</i>"

ElseIf Session("inlogg") <> true then
Response.Write "Offline"

End If

%>

Här blir det alltid "Offline" ,vad är felet??

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

BrimbaMedlem sedan dec. 19995 875 inlägg
#2
<% 
If Session("inlogg") = true then
Response.Write "Online: <i>" & Session("username") & "</i>" 
Else 
Response.Write "Offline" 
End If
%>

om session("inlogg") = true, så skall du ju göra en sak, annars en annan sak.. behöver inte en If-sats till :)

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=20" TARGET=_blank>Har du husdjur hemma?
</A>Varför får man inte dricka saltvatten?

henkenyMedlem sedan maj 200152 inlägg
#3

Tack för tipset, klart att det ska va så, men problemet är att det inte löser mitt problem. Den vägrar godta att session("inlogg") = true. Om man gör online/offline satsen på mainsidan som jag har inloggninge på så funkar det, men inte på nån annan sida. En session gäller väl över hela webplatsen, inte sant? Kan det va nåt mer jag glömt??

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

BrimbaMedlem sedan dec. 19995 875 inlägg
#4

reload?

du har inte session.abandon någonstans kvarglömt?

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=20" TARGET=_blank>Har du husdjur hemma?
</A>Varför får man inte dricka saltvatten?

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Använd inte det inloggningsskriptet, det är osäkert (och ineffektivt).

Här är ett alternativ

<% 
Check = "SELECT * FROM users where username = '" & Request.Form("Username") & "'"
set recset = connect.execute(Check)
session("Inlogg") = false
if Recset.eof then
   Response.Write "You have entered an erroneous username!" %>
<p>
<% 
ElseIf  recset("password") <> request.form("password") Then
Response.Write "You have entered an erroneous password" 
else
Session("username") = Request.Form("username")
Session("password") = Request.Form("password")
Session("inlogg") = true
Response.Write "<b>Your status is now logged in, with username: <i>" & Session("username") & "</i></b>"
End if
%>

Om du skriver

If Cbool(Session("inlogg")) = true then
Response.Write "Online: <i>" & Session("username") & "</i>" 

Else 
Response.Write "Offline" 

End If

fungerar det bättre?
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 09 okt 2001]

henkenyMedlem sedan maj 200152 inlägg
#6

Reloadar sidan för fullt, men det händer ingenting.Det står bara offline, har provat den på flera sidor, bara offline. Har ingen session.abandon nånstans. Vet i fan vad jag ska göra....*suck*

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

henkenyMedlem sedan maj 200152 inlägg
#7

Tack LarsG, ska prova det istället. Misstänkte att mitt inte var så hightech, tog det direkt från idg´s skola, där är väl allt gjort för att lättare förstå det.

Tackar.....

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

henkenyMedlem sedan maj 200152 inlägg
#8

Hmm......sånt här blir man bara så sur på. Det funkar itne bättre det här. Körde kollen på mainsidan där man loggar in. Så när man inte loggat in så står det offline, sen när man loggar in står det logged in....osv. Alltså där funkar det kanon, men inte på nån annan sida.??????

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

henkenyMedlem sedan maj 200152 inlägg
#9

Gjorde ett test nu. På mainsidan (där inloggningen sker) så skrev jag längst upp:
<% If Session("inlogg") = true then
Response.Write "Du är redan inloggad"
End If%>

För att se om man går tillbaka till mainsidan om inlogg session hänger kvar, men icke, det verkar som den försvinner när man lämnat mainsidan. Vad kan det bero på???

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

LarsGMedlem sedan dec. 200012 464 inlägg
#10

Vad händer om du skriver

response.write "Inlogg: " & session("inlogg") & "<br>"
response.write "Username: " & session("username") & "<br>"

på någon annan sida än inloggningssidan, bara för att se om de innehåller något öht.

------------------
essentitia preter non sans multiplicandum

henkenyMedlem sedan maj 200152 inlägg
#11

På Mainsidan så blir det:

Inlogg: Sant
Username: henke

På nån annan sida:

Inlogg:
Username:

Den tappar session en, av nån konstig anledning.....

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

henkenyMedlem sedan maj 200152 inlägg
#12

Kolla på sidan på:
http://193.10.197.75:22/projekt/

så kan du se hur jag har tänkt.....blir inte klok på det här...

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

LarsGMedlem sedan dec. 200012 464 inlägg
#13

Är cookies tillåtna?

vad blir det om du skriver ut

response.write session.sessionid

på olika sidor?

Är det problem med at det är olika frames? (Kan inget om sånt.)

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 09 okt 2001]

henkenyMedlem sedan maj 200152 inlägg
#14

571291177

står det då

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

LarsGMedlem sedan dec. 200012 464 inlägg
#15

Om du har samma sessionid på båda sidorna så är det samma session i alla fall.

Känner mig bara förvirrad just nu.

------------------
essentitia preter non sans multiplicandum

henkenyMedlem sedan maj 200152 inlägg
#16

hehe, känner mig ännu mer förvirrad , tro mig. har gjort fler liknande sidor förut, och det fungerade utmärkt då. förstår inte vad som händer här nu.....

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

henkenyMedlem sedan maj 200152 inlägg
#17

hmm, nu är det lite strange här. har testat det där med sessionid. Har inte så stor koll på det där. Men om jag har en utskrift på sessionid på mainsidan så får den nummer 571291264 och om jag sedan uppdaterar leftsidan, där statusen (online/offline) ska visas, så ha den istället id 571291265. Ska det va så eller???

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

LarsGMedlem sedan dec. 200012 464 inlägg
#18

Nej det är sessionid som används för att hålla rätt på en session och det värdet lagras i en cookie på klienten.

(Det var därför jag frågade om cookies var tillåtna.)

------------------
essentitia preter non sans multiplicandum

henkenyMedlem sedan maj 200152 inlägg
#19

hmm, okej, fattar.......så det är alltså det som är felet, att det inte är samma session??

------------------
Man kommer fortare fram till målet om man kryper åt rätt håll än springer åt fel håll

140 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)