Jag har en db med ett fält som heter besok, tabellen heter medlem. På index-sidan ska man logga in och då kommer man till sidan passkoll.asp. Där kollas användarnamn och lösenord mot uppgifterna i db. Är nått av detta fel så omdirigeras man till en annan sajt. Så långt funkar allt bra. Men hur gör jag för att uppdatera besöksräknaren????
Så här ser koden ut:
Dim SQL, username, pass
username = Request.Form("user")
pass = Request.Form("pass")
Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("scrapsnpieces.mdb")&""
SQL = "SELECT pass FROM medlem WHERE user='"& username &"'"
rs.Open SQL, MinCon
if rs.EOF Then
rs.Close
minCon.Close
Set minCon = nothing
Set rs = nothing
Response.redirect "http://www.expressen.se"
else
if rs("pass")<>pass Then
rs.Close
minCon.Close
Set minCon = nothing
Set rs = nothing
Response.redirect "http://www.aftonbladet.se"
else
[B]rs.Close
minCon.Close
Set rs = nothing
Set minCon = nothing
Set minCon = Server.CreateObject("ADODB.Connection")
Set rs= Server.CreateObject("ADODB.Recordset")
minCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("scrapsnpieces.mdb")&""
sql2 = "SELECT * FROM medlem WHERE user='"& username &"'"
rs.Open sql2, minCon, 1,2
rs.AddNew
rs("besok") = Session("besok") + 1
rs.Update
rs.Close
minCon.Close
Set minCon = nothing
Set rs = nothing
Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("scrapsnpieces.mdb")&""
SQL = "SELECT pass FROM medlem WHERE user='"& username &"'"
rs.Open SQL, MinCon[/B]
Response.redirect "next.asp"
%>
<html>
<head>
<title>Password-koll: Scraps'n'pieces</title>
</head>
<body>
</body>
<%
end if
end if
rs.Close
minCon.Close
Set rs = nothing
Set minCon = nothing
%>
</html>
Det är det som är markerat emd fetstil som jag inte får att funka....
Ditt första elseif verkar ha halkat isär. Det måste vara 'elseif', det går inte att ha fler 'else' efter varandra.
Sen behöver du inte stänga och öppna din connection igen, bara för att göra ett nytt recodset, du kan köra den direkt på det gamla connection-objektet.
Ditt första elseif verkar ha halkat isär. Det måste vara 'elseif', det går inte att ha fler 'else' efter varandra.
Det ska vara:
if alternativ 1
kod
omdirigering 1
else alternativ 2
kod alternativ a
omdirigering 2
kod alternativ b
omdirigering till rätt sida
slut på if-satsen till alternativ 2
slut på if-satsen till alternativ 1
Funkar inte detta då? Det är ju på olika "nivåer"... :q Det har ju funkat förrut. Säger jag som är alldeles ny & förvirrad på detta ännu....
Sen behöver du inte stänga och öppna din connection igen, bara för att göra ett nytt recodset, du kan köra den direkt på det gamla connection-objektet.
Fast det är olika SQL-satser? :q :q Hur gör jag det då på enklaste sätt?
Några tips på hur jag får räknaren att räkna upp för varje individuellt besök?
Så nånting borde funka.
Varför skapar du ett till recordset innan du skickar till next.asp?
<%
Dim SQL, MinCon, rs, username, pass
username = Request.Form("user")
pass = Request.Form("pass")
Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("scrapsnpieces.mdb")&""
SQL = "SELECT pass FROM medlem WHERE user='"& username &"'"
rs.Open SQL, MinCon
if rs.EOF Then
rs.Close
minCon.Close
Set minCon = nothing
Set rs = nothing
Response.redirect "http://www.expressen.se"
else
if rs("pass")<>pass Then
rs.Close
minCon.Close
Set minCon = nothing
Set rs = nothing
Response.redirect "http://www.aftonbladet.se"
else
rs.Close
Set rs = nothing
MinCon.execute("Update medlem Set besok = besok+1 WHERE user='"& username &"'")
'-----------------------------------------------------
SQL = "SELECT pass FROM medlem WHERE user='"& username &"'"
rs.Open SQL, MinCon
rs.Close
Set rs = nothing
'-----------------------------------------------------
minCon.Close
Set minCon = nothing
Response.redirect "next.asp"
end if
end if
%>
SQLsträngen = "UPDATE [namnet på din tabell] SET [namnet på
kolumnen med räknaren] = [namnet på kolumnen med räknaren]
+ 1 Where Username(eller vad du kallar den kolumnen)
= "&Request.Form("namnet på formuläret där besökaren skrivit in
sitt användarnamn")
Mer konkret exempel:
strSQL = "UPDATE medlemmar SET countin = countin + 1 Where
Username = "&Request.Form("username")