webForumDet fria alternativet

session trubbel tror jag

ASPur ASP

5 svar · 186 visningar · startad av snekkorr

snekkorrMedlem sedan dec. 2000203 inlägg
#1

jag jobbar som vanligt på min community :)... försöker mig på att skicka medelanden till varandra...

så här ser det ut när man loggar in... all denna kod funkar.. det viktiga är sessionerna som tilldelas längst ner...

<!-- #Include File="adovbs.inc" -->
<!-- #Include File="databas.asp" -->

<% Visa = "SELECT * FROM medlemmar"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic

X = FALSE

Do Until X = TRUE OR RecSet.EOF

If RecSet("Smeknamn") = Request.Form("smeknamn") 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("Losenord") = Request.Form("losenord") Then
	Y = TRUE
	Exit Do
	End If

	RecSet.MoveNext

	Loop

End If

If X = FALSE Then 
Response.Write "Du har anget ett felaktigt användarnamn!"

ElseIf Y = FALSE Then
Response.Write "Du har anget ett felaktigt lösenord!"

End If

If X = TRUE AND Y = TRUE Then 

Session("smeknamn") = Request.Form("smeknamn")
Session("losenord") = Request.Form("losenord")  

 %\>

<%End If%>

Välkommen <%=Session("smeknamn")%><br>
<a href="mail.asp">Inkorgen</a>

och när man klickar på inkorgen - länken så ska man läsa sina medelande genom följande:

<!-- #Include File="adovbs.inc" -->
<!-- #Include File="databas.asp" -->

<% Inbox = "Select FranId, Text from mail where TillId = " & session("Smeknamn")
RecSet.Open Inbox, Connect, AdOpenStatic, AdLockOptimistic %>

<% Do While Not RecSet.EOF %>

<%=RecSet("FranId") %> <br>
<%=RecSet("Text") %>

<% RecSet.MoveNext
Loop %>

<% RecSet.Close %>

men då får jag upp:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/community/mail.asp, rad 5

:((((((( nån som vet varför?

------------------
<a href="http://clusterduck.d2g.com">Hur vet man att man gör rätt om man aldrig gjort fel?</a>

EclipseMedlem sedan juli 20003 825 inlägg
#2
<% Inbox = "Select FranId, Text from mail where TillId = " & session("Smeknamn")

Du kan inte använda sessioner på det viset. En session kan bara tilldelas av en användare och sessionen är sedan knuten till den användaren.

LarsGMedlem sedan dec. 200012 464 inlägg
#3
<% Inbox = "Select FranId, Text from mail where TillId = '" & session("Smeknamn") & "'"

Ditt inloggningsskript är inte säkert.

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

ScarabusMedlem sedan maj 200118 inlägg
#4

Precis, du glömde att stoppa strängvärdet inom ('') gluttar.
Man kan väl visst använda Sessions som han gör Eclipse. Varför ska man tilldela Sessions om man inte kan använda dom i db-querys? eller hur menar du egentligen?

Förresten snekkorr så ska du hämta både
användarnamnet och lösenordet på en gång. Det du gör är en sökning först på namnet, stämmer det så söks lösenordet OAVSETT användare. Detta gör ju att vilken användare som helst kan logga in på vilken annan användare som helst med sitt eget lösenord!

------------------
:[Scarabus]:

Fudge Entertainment

[Redigerat av Scarabus den 27 aug 2001]

EclipseMedlem sedan juli 20003 825 inlägg
#5

Okej, jag får väl krypa till korset och säga att jag inte fattade frågan...

SQL = "SELECT * FROM [users] WHERE [x_user] = '" & request("x_user") & "' AND [x_password] = '" & request("x_password") & "';"
mySQL = Conn.Execute(SQL)
on error resume next

IF mySQL.EOF THEN
-- Du är ej inloggad
-- response.redirect "login.asp"
ELSE
-- Du är inloggad
-- response.redirect "index.asp"
END IF
snekkorrMedlem sedan dec. 2000203 inlägg
#6

hehe... smådetaljer :r .. som sagt e ja ny... men tack för hjälpen ;)

------------------
<a href="http://clusterduck.d2g.com">Hur vet man att man gör rätt om man aldrig gjort fel?</a>

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