<%
databas = Server.MapPath("com.mdb")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& databas
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM com ORDER BY ID DESC"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
If Request.Form("namn") = RecSet("namn") AND Request.Form("losen") = RecSet("losen") Then
Session("namn") = "namn"
Session("vem") = RecSet("namn")
RecSet.Close
Set RecSet = nothing
Connect.Close
Set Connect = nothing
Response.Redirect("inf.htm")
ELSE
Response.Redirect("default.asp")
End If
%>
Får inget fel meddelande men den skickar tillbaka än till default.asp som den ska göra om man fyllt i fel lösen/namn men det har ja ej gjort allt stämmer i databasen med det ja skriver ??? Snälla hjälp...
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("com.mdb")
Dim namn, losen
namn = Trim(Request.Form("namn"))
losen = Trim(Request.Form("losen"))
Set RecSet = Connect.Execute("SELECT * FROM com WHERE namn = '" & namn & "' AND losen = '" & losen & "'")
If RecSet.EOF OR RecSet.BOF Then
Response.Redirect"default.asp"
Else
Session("namn") = namn
'######## Istället för Session("vem") så kommer användarens namn sparas i Session("namn").
Response.Redirect"inf.htm"
End If
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>
Sen en liten fråga:
Borde inte inf.htm heta inf.asp så att du kan skydda sidan?
Är den inte ett aspdokument så går det ju inte att skydda den
Jo det borde det men ja ska ej ha sidan inf.htm den ska ändras till en asp fil har bara inte lagt någon asp kod i den än därför inte döpt den till .asp än... tack för hjälpen föresten ska kolla på koden ja fick av dej...
Anledningen till att det inte fungerar är att du inte loopar ditt recordset. Jag tycker dock att du ska göra jämförelsen av användaranamn och lösenord redan i SQL-frågan.
<%
databas = Server.MapPath("com.mdb")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& databas
SQL = "SELECT 1 FROM com WHERE namn = '" & Request.Form("namn") & "' AND losen = '" & Request.Form("losen") & "'"
set RecSet = Connect.execute (SQL)
If not RecSet.eof then
Session("namn") = "namn"
Session("vem") = Request.FOrm("namn")
blnOk = true
End If
RecSet.Close
Set RecSet = nothing
Connect.Close
Set Connect = nothing
If blnOk then
Response.Redirect("inf.htm")
ELSE
Response.Redirect("default.asp")
end if
%>
1 är en siffra. Jag måste hämta någonting från tabellen för att se om villkoren uppfylls, men eftersom jag inte ska använda någon data så vill jag hämta så lite som möjligt.
Om villkoren i SQL-satsen uppfylls får jag tillbaka ett recordset med en post; en rad, en kolumn, ett tecken.
Red: istället för att specificiera ett fält, så kan jag alltså specificera ett värde, och det är det jag gör.
Nej, det är bara för att istället för att hämta en massa data som jag inte ska använda, så returnerar jag minsta möjliga datamängd genom att säga till att 'om villkoren uppfylls, skicka mig siffran 1!'.