webForumDet fria alternativet

Synas och inte synas

ASPur ASP

31 svar · 576 visningar · startad av scoxi

Medlem sedan jan. 200460 inlägg
Frågan#1

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..

Medlem sedan nov. 20017 144 inlägg
#2

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
Medlem sedan jan. 200460 inlägg
#3

ok ska testa det sen.. låter ju bra det du skrev tack

Medlem sedan jan. 200460 inlägg
#4

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.

Tips/förslag/ändringar i koden tack :)

Medlem sedan juni 2002256 inlägg
#5

Ska funka om du skriver som du beskriver.
Felmeddelande?

Medlem sedan jan. 200460 inlägg
#6

Blir inget felmeddelande..
Kan visa koden.. lite huller om buller testar bara lite
Main.asp

<table border="0" cellpadding="1" cellspacing="0" width="100%">
	<tr>
		<td colspan="2" bgcolor="#212121" height="89" width="100%"><a href="main.asp"><img src="den_coola_loggan.jpg"></a></td>
	</tr>
	
	
  <tr> 
    <td colspan="2" bgcolor="#131313" height="39" width="100%">
	
	 
	<%If Session("loggedon") = true Then
	<a href="register.asp">	START</a>
	Else
	%>
	START
	<%End If %>
	 <a href="main.asp?p=register">REGISTRERA</a></td>
	</tr>
	
	<tr>
		<td height="500" valign="top" width="260">

Och i logincheck

<%
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

Hur ska jag göra?

Medlem sedan jan. 200460 inlägg
#7

hittade ett litet fel nu men det gör ingen skillnad:
<%If Session("loggedon") = true Then
<a href="register.asp"> START</a>
Else
%>

Ska vara
<%If Session("loggedon") = true Then%>
<a href="register.asp"> START</a>
<%
Else
%>

Medlem sedan juni 2002256 inlägg
#8

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.

Medlem sedan jan. 200460 inlägg
#9

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.

Medlem sedan juni 200032 967 inlägg
#10

Kontrollera att dina variabler innehåller det du tror att de innehåller.

mvh

Medlem sedan jan. 200460 inlägg
#11

hmm ok jag antar att du vet vad felet e men du vill att jag ska hitta själv :(
haha nä men jag ska kolla nu

Medlem sedan juni 200032 967 inlägg
#12

Nej då, jag hjälper dig bara att felsöka. :)

Medlem sedan jan. 200460 inlägg
#13

Aja, kan iaf inte hitta ngt som e fel.. inte nu iaf :(

Medlem sedan juni 200032 967 inlägg
#14

Så variabelinnehållet och SQL-frågans utseende såg riktigt ut när du gjorde testutskrifterna?

Medlem sedan jan. 200460 inlägg
#15

va vad snackar du om? vadå för testutskrifter? :S kan inget som har med felsökning o göra..

Medlem sedan juni 200032 967 inlägg
#16

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.

strSQL = "Select * FROM users WHERE username = '" & username & "' AND password = '" & password & "' "
Response.write strSQL
response.end
'Set rs = Conn.Execute (strSQL)
Medlem sedan jan. 200460 inlägg
#17

Select * FROM users WHERE username = '' AND password = ''

Det kmr upp..

Medlem sedan jan. 200460 inlägg
#18

Vet inte om det e ngt fel eller inte :(

Medlem sedan juni 200032 967 inlägg
#19

Vilket innebär att dina variabler inte innehåller det du tror att de ska göra.

Har du angett rätt formulärfältsnamn när du hämtar in värdena i koden?

Du kanske har gjort standardmisstaget, att glömma method="post" i din <form>-tagg?

Medlem sedan juni 200032 967 inlägg
#20

Vet inte om det e ngt fel eller inte

Ser du inte att användarnamnet och lösenordet inte finns med i SQL-frågan? :q

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