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:
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"
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??
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
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*
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.
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.??????
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å???
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.....
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???