Jag undrar om jag ska använda sessions för att få det att bli att om session = false så funkar inte länkarna i menyn men om session = true så funkar dom..
T.ex.
If session("login") = false Then
'länkarna funkar inte
If session("login") = true then
'länkarna funkar
end if
end if
o när man loggar in o användarnamn o lösen e rätt så bli session("login") = true
Skulle det funka eller? E inte så säker på sessions men men..
Ja, visst. Men eftersom att du kanske inte vet vilken sida användarna kommer till så är det bättre att förutsätta att din session är tom, altså:
'När medlemmen loggar in.
session("login")="true"
'och loggar ut:
session.abandon
'Och på sidan med menyn:
If session("login") <> "" then
'länkarna funkar
end if
Alltså..
Jag har en main sida.. där loggar man in. Sen när man loggar in då har jag ju en sida som checkar o om allting är korrekt så blir Session("logged_on") = "true" o sen så på main sidan så har jag
<%
If session("logged_on") = "true" then
<a href="xxxxxx">nyheter</a>
Else%>
NYHETER
<% End if %>
Hur som helst funkar det inte iaf o jag sitter o funderar på om jag måste göra så att man redirectas till t.ex. main2 när man loggat in men då ere bara onödigt o använda sessions grejen till det jag vill använda det.
<%
username=Request.Form("username")
password=Request.Form("password")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\mg\test\mgchillout.mdb"
'Hämtar värden från databasen
Set rs = Conn.Execute ("Select * FROM users WHERE username = '" & username & "' AND password = '" & password & "' ")
'Värdena stämmer
'If-sats för att avgöra vad som ska ske
If Not Rs.EOF Then
Session("loggedon") = true
If Session("loggedon") = true Then
Response.Redirect("main.asp")
Else
response.write "tyvärr.."
'Asp kod avslutas
'Asp kod börjar
'Avslutar If-satsen
End if
end if
'Asp kod avslutas
%>
Strunta i vad kommentarerna säger inte orkat ändra..
Felet blir att START inte blir en aktiv länk men man har ändå loggat in eftersom att iframen där man loggar in blir helt vit annars skulle det stå tyvärr... i den
Blir du tillbaka-skickad till main.asp så ska de ju funka.
Prova skriva ut Session("loggedon")
Skulle även vilja ändra lite i inloggningsproceduren
<%
username=Request.Form("username")
password=Request.Form("password")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\mg\test\mgchillout.mdb"
'Hämtar värden från databasen
Set rs = Conn.Execute ("Select * FROM users WHERE username = '" & username & "' AND password = '" & password & "' ")
'Värdena stämmer
'If-sats för att avgöra vad som ska ske
If Not Rs.EOF Then
Session("loggedon") = true
Response.Redirect("main.asp")
Else
response.write "tyvärr.."
'Asp kod avslutas
'Asp kod börjar
'Avslutar If-satsen
End if
'Asp kod avslutas
%>
/r
Sidan blev vit eftersom du inte hade någon Else-händelse för If Not Rs.EOF Then.
Du blev alltså aldrig inloggad.
Om jag ändrar till din kod kommer texten "tyvärr..." upp trots att det e rätt användarnamn o lösenord men jag fattar inte varför den inte redirectas om till main.asp för då körs ju koden så att den kollar om session = true osv..
jäkligt jobbigt.
vore bra om nån som har koll kan hjälpa mig på traven.
Kontrollera att dina variabler innehåller det du tror att de innehåller.
För att se vad en variabel innehåller använder man Response.write, för att värdet ska skrivas till webbläsaren. Börja med att göra en testutskrift av din SQL-fråga, istället för att exekvera den.