webForumDet fria alternativet

Läsa psw & usr från en db

ASP

5 svar · 238 visningar · startad av SPiN

Medlem sedan mars 20007 896 inlägg
Frågan#1

Hur gör man när man ska läsa från en databas(access)?

Jag har lagt in poster i en databas (password och användarnamn), och nu vill jag såklart att man ska logga in :)
Men jag får det inte att funka, fick denna kod förut, men den funkar inte...

<%
Dim strSQL
Dim strUserName
Dim strPassword

strUserName = Request.Form("usr")
strPassword = Request.Form("psw")

Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT * FROM users WHERE anvandare = '" & strUserName & "'"
strSQL = strSQL & " AND losenord = '" & strPassword & "'"

cn.Open "DSN=MDR"
rs.Open strSQL, cn, 3, 3

If rs.RecordCount = 1 Then

Session("SessionID") = Session.SessionID
Session("UserID") = rs("UserID")
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
Response.Redirect Session("memberspage.asp")

Else

rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
Session.Abandon
Response.Redirect("felpass.asp")

End If
%>

Jag tycker att det borde finnas med vilka drivers som kör osv, men var jag än la in det så går det inte :(

Hur göra?

------------------
SPiN, bjowik99@it-gymnasiet.nu

Medlem sedan dec. 19996 721 inlägg
#2

Vad gör Session("SessionID") = Session.SessionID för nytta...

...och var är Session("memberspage.asp") definierad?

Medlem sedan mars 2000475 inlägg
#3

jag brukar använda följande... du får nog modifiera den lite...

*****

<!--#include file="../functions.inc"-->

<%
Session("Logintries") = Session("Logintries") + 1

If Session("user_name")="" Then

	Set Connection = Server.CreateObject("ADODB.Connection")
   Connection.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=d:\\Inetpub\\wwwroot\\databas\\admin.mdb"
	SQLStmt = "SELECT \* FROM admin Where user_name = '" & FixaTecken(Request.Form("user_name")) & "' AND password = '" & FixaTecken(Request.Form("password")) & "'"
	Set RS = Connection.Execute(SQLStmt)		      
  
   If RS.EOF Then
	Response.Redirect("fel.asp")

	Else

        Session("user_name") = RS("user_name")
	Session("password") = RS("password")
	Session("Logintries") = 0
	
	RS.Close
	Connection.Close

	End If

End If

%>

**** functions.inc ****

<script language=VBScript runat=Server>

'----------------------------------------------------
' * FixaTecken *
' Frisera till alla inkommande tecken så att de inte
' innehåller apostrof-tecken samt onödiga mellanslag.
'----------------------------------------------------

Function FixaTecken(sfix)

sfix = Replace(Trim(sfix), "'", "''")
sfix = Replace(sfix, "|", "")
FixaTecken = sfix

End Function

'----------------------------------------------------
' * RADBRYT *
'----------------------------------------------------

Function Radbryt(rfix)

rfix = "\<P\>" & Replace(rfix, vbCrLf, "\<br\>") & "\</P\>"
Radbryt = rfix

End Function

'----------------------------------------------------
' * ConvertLinks *
' Fixa så att länkar blir länkade i HTML-koden.
' Nedanstånde kod kommer från www.ojmnet.com
'----------------------------------------------------
Function ConvertLinks(svalue)

svalue = ConvertLinksHREF(svalue, "http://")
svalue = ConvertLinksHREF(svalue, "ftp://")
svalue = ConvertLinksHREF(svalue, "news://")
svalue = ConvertLinksHREF(svalue, "mailto:")

ConvertLinks = svalue
End Function

Function ConvertLinksHREF(svalue, sHREF)

Dim iPos1, iPos2, sTemp, sTemp1, sTemp2

iPos2 = 1
iPos1 = InStr(1, svalue, sHREF, 1)
Do While iPos1 > 0
iPos2 = FindLinkEnd(svalue, iPos1 + Len(sHREF))
If iPos2 > 0 Then
sTemp1 = Mid(svalue, iPos1, iPos2 - iPos1)
sTemp2 = "<A HREF=" & Chr(34) & sTemp1 & Chr(34) & ">" & sTemp1 & "</A>"
svalue = Left(svalue, iPos1 - 1) & sTemp2 & Mid(svalue, iPos2)
iPos2 = iPos1 & Len(sTemp2) + 1
Else
iPos2 = iPos1 + Len(sHREF)
End If
iPos1 = InStr(iPos2, svalue, sHREF, 1)
Loop

ConvertLinksHREF = svalue
End Function
Function FindLinkEnd(svalue, iPos1)
Dim iPos2, i, iLen, iTempPos
Dim sValidChars

sValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-.@/"
iLen = iPos1 + Len(Mid(svalue, iPos1)) - 1
iPos2 = -1
For i = iPos1 To iLen
iTempPos = InStr(1, sValidChars, Mid(svalue, i, 1), 1)
If iTempPos = 0 Then
If i < iPos1 + 4 Then
iPos2 = -1
Else
iPos2 = i
End If
Exit For
End If
Next
If iPos2 = 0 Then
iPos2 = Len(svalue) + 1
End If

FindLinkEnd = iPos2

End Function

</script>

****

hoppas det fungerar...

------------------
Micke & Annas Sajt
micke@micke-anna.nu

Medlem sedan mars 20007 896 inlägg
#4

fel i inlägget... se nästa :)

[Redigerat av SPiN den 06 apr 2000]

Medlem sedan mars 20007 896 inlägg
#5

Följande rader, vad ska man ha på dom? PWS förstår dem inte...

Session("user_name") = RS("user_name")
Session("password") = RS("password")
Session("Logintries") = 0

och skulle du kunna förklara vad logintries gör? :)
tack tack annars, scriptet funkar förutom det jag just skrev... :D

------------------
SPiN, bjowik99@it-gymnasiet.nu

Medlem sedan mars 2000475 inlägg
#6

user_name -
namnet på cellen i databasen, där användarnamnet står.

password -
namnet på cellen i databasen, där lösenordet står.

Loggentries -
håller reda på antal försök att logga-in.

****** tex så här ***

<% If Session("Logintries") >= 3 Then> Tyvärr, du har försökt att logga in felaktigt mer än tre gånger. Du är nu avstängd från systemet.

text, text, text, text,

<%End If%>

------------------
Micke & Annas Sajt
micke@micke-anna.nu

259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)