webForumDet fria alternativet
Logga in / Bli medlem

Logga in

ASP

16 svar · 270 visningar · startad av FIgg3

Medlem sedan sep. 2001354 inlägg
Trådstart#1

Blir snart knäpp varför funkar inte denna koden

   <%

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

Medlem sedan nov. 20018 492 inlägg
#2

Prova detta istället:

<%
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? :q
Är den inte ett aspdokument så går det ju inte att skydda den :l

/Mika3l

Medlem sedan sep. 2001354 inlägg
#3

Ingen av alla asp freaks som kan detta?

Medlem sedan sep. 2001354 inlägg
#4

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

Medlem sedan juni 200032 967 inlägg
#5

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

Vad gör session("namn") = "namn" förresten?

Mvh,

Medlem sedan sep. 2001354 inlägg
#6

Tack men koden funka inte den heller... ja ja får kolla mer på det senare då...

Medlem sedan sep. 2001354 inlägg
#7

Tack @nders ska kolla koden...

Medlem sedan nov. 20018 492 inlägg
#8

Ok, jag tänkte väl att sidan skulle vara ett aspdokument :e

tack för hjälpen föresten ska kolla på koden ja fick av dej...

Varsågod ;)
Kul att någon tackar för en gångs skull...

/Mika3l

Medlem sedan nov. 20018 492 inlägg
#9

@nders:
Vad är 1;an i

SQL = "SELECT 1 FROM com WHERE namn = '" & Request.Form("namn") & "' AND losen = '" & Request.Form("losen") & "'"

för något? :q
Nåt sånt har jag aldrig sett förut...

/Mika3l

Medlem sedan juni 200032 967 inlägg
#10

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.

Mvh,

[Redigerat av @nders den 17 jan 2002]

Medlem sedan nov. 20018 492 inlägg
#11

1 är en siffra.

Ahaa! ;) :e

Fungerar det som typ TOP eller?

/Mika3l

Medlem sedan juni 200032 967 inlägg
#12

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

Mvh,

[Redigerat av @nders den 17 jan 2002]

Medlem sedan nov. 20018 492 inlägg
#13

Ahaa!
Nu fattar jag! :)

Tack!

/Mika3l

Medlem sedan sep. 2001354 inlägg
#14

tack för hjälpen grabbar... men en sak till ja inte fattar... ja skappar juh en Session här:

Session("vem") = Request.Form("namn")

Men varför funkar det ej att skriva ut den på com.asp som ja skickas vidare till?

Medlem sedan juni 200032 967 inlägg
#15

Mycket bra fråga.

Det ska du helt klart kunna göra. Du har ingen if-sats runt, som kanske av någon anledning inte uppfylls?

Mvh,

Medlem sedan sep. 2001354 inlägg
#16

Okej får ta och titta på det i morgon då men du ska ha tack för all hjälp @nders Kommer nog tillbake med fler fråger i morrn ;)

Medlem sedan juni 200032 967 inlägg
#17

Du är välkommen, och: du är välkommen. ;)

Mvh,

263 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)