Vad gör Session("SessionID") = Session.SessionID för nytta...
...och var är Session("memberspage.asp") definierad?
5 svar · 238 visningar · startad av SPiN
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
Vad gör Session("SessionID") = Session.SessionID för nytta...
...och var är Session("memberspage.asp") definierad?
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
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
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