Har en inloggnins sida som för tillfället använder access som databas. Nu vill jag uppgradera och köra med mysql.
Eftersom det tydligen inte är bra att köra med recset gentimot mysql så har jag fått en del problem. Det finns ett annat sätt som bara tar två rader men jag vet inte hur man gör det
Hur skulle min kod se ut om man gör på det sättet?
Set Connect = server.createObject("adodb.connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath(db) &" "
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM anvandare"
RecSet.Open SQL, Connect, 3,3
Do Until RecSet.EOF
If RecSet("online") = "Ja" AND DateDiff("n", RecSet("update"), Now) > 10 Then
RecSet("online") = "Nej"
RecSet.Update
End If
RecSet.MoveNext
Loop
RecSet.Close
SQL = "SELECT * FROM anvandare WHERE Namn = '"&namn&"' AND Losen = '"&losen&"' "
RecSet.Open SQL, Connect, 3,3
If Not RecSet.Eof Then
Session.timeout = 180
Session("online") = "ja"
Session("id") = Trim(RecSet("ID"))
Session("username") = Trim(RecSet("Namn"))
Session("user") = Trim(RecSet("Namn"))
session("idshop") = Trim(RecSet("idshop"))
session("statuss") = Trim(RecSet("status"))
If RecSet("bild") <> "" Then
Session("bild") = RecSet("bild")
End If
Session("kolla") = "Nej"
Session("kollat") = "Nej"
Response.Cookies("qs") = Session("username")
Response.Cookies("qs").Expires = "17 Sep, 2035 "
Session("login") = ""
Session("hepp") = Trim(RecSet("ID"))
RecSet("datum") = NOW()
RecSet("update") = NOW()
RecSet("online") = "Ja"
RecSet("visits") = RecSet("visits") + 1
If Request.Cookies("counter").haskeys = false Then
RecSet("status") = RecSet("status") + 3
Response.cookies("counter")("raknad") = "true"
Response.cookies("counter").expires = date +1
End If
RecSet.Update
RecSet.Close
Connect.Close
Set RecSet = Nothing
Set Connect = Nothing
Vill gärna ha hjälp med denna för sedan kan jag nog lista ut hur jag ska göra med min registrerings sida. Annars får jag väl fråga igen ;)
<%@ Language=VBScript%>
<!-- #INCLUDE FILE="pass.asp" -->
<% Response.Buffer = True
namn = Request.Form("anvandarnamn")
losen = Request.Form("losenord")
If losen = "" Or namn = "" Then
session("login") = "Du måste skriva in både användarnamn och lösenord"
Response.Redirect("default.asp")
end if
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver=MySQL;server=localhost;uid=Qimen;pwd=****;database=px"
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM anvandare"
RecSet.Open SQL, Connect, 3,3
Men det är inte det som ska vara fel. Det jag vill göra är att ändra recset till ngt i stil med sql=insert to 'blub' value 'hepp' det är det jag inte vet hur jag ska göra med all min kod :/
Till att börja med: Update är ett kass fältnamn. Byt namn på det fältet.
För det andra: måste du ha så infernaliskt mycket sessions? Se över vilka du verkligen behöver. Du använder ju cookies också, du kanske ska överväga att använda bara cookies?
Någonting sånt här borde fjunka:
namn = Replace(Request.Form("namn"), "'", "''")
losen = Replace(Request.Form("losen"), "'", "''")
Set Connect = server.createObject("adodb.connection")
Connect.Open "driver=MySQL;server=localhost; uid=Qimen;pwd=****;database=px"
strSQL = "UPDATE anvandare SET online = "nej" WHERE fältetsominteheterupdate < '" & DateAdd("n", -10, now()) & "'"
Connect.Execute strSQL,,128
If Request.Cookies("counter").haskeys = false Then strStatus = ", status = status + 3"
strSQL = "UPDATE anvandare SET datum = current_timestamp, faltetsominteheterupdate = current_timestamp, online = "ja", visits = visits + 1 " & strStatus & " WHERE Namn = '"&namn&"' AND Losen = '"&losen&"'
Connect.Execute strSQL,,128
strSQL = "SELECT * FROM anvandare WHERE Namn = '"&namn&"' AND Losen = '"&losen&"' "
set RecSet = Connect.Execute(strSQL)
If Not RecSet.Eof Then
Session.timeout = 180
Session("online") = "ja"
Session("id") = Trim(RecSet("ID"))
Session("username") = Trim(RecSet("Namn"))
Session("user") = Trim(RecSet("Namn"))
session("idshop") = Trim(RecSet("idshop"))
session("statuss") = Trim(RecSet("status"))
If RecSet("bild") <> "" Then
Session("bild") = RecSet("bild")
End If
Session("kolla") = "Nej"
Session("kollat") = "Nej"
Session("login") = ""
Session("hepp") = Trim(RecSet("ID"))
Response.Cookies("qs") = Session("username")
Response.Cookies("qs").Expires = "17 Sep, 2035 "
If Request.Cookies("counter").haskeys = false Then
Response.cookies("counter")("raknad") = "true"
Response.cookies("counter").expires = date +1
End If
End if
RecSet.Close
Connect.Close
Set RecSet = Nothing
Set Connect = Nothing
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
/pxworld/check.asp, line 14
Då försökte jag använda koden:
<%@ Language=VBScript%>
<% Response.Buffer = True
'If losen = "" Or namn = "" Then
'session("login") = "Du måste skriva in både användarnamn och lösenord"
'Response.Redirect("default1.asp")
'end if
namn = Replace(Request.Form("namn"), "'", "''")
losen = Replace(Request.Form("losen"), "'", "''")
Set Connect = server.createObject("adodb.connection")
Connect.Open "driver=MySQL;server=localhost; uid=Qimen;pwd=;database=members"
strSQL = "UPDATE anvandare (online) values ('Nej') WHERE update < '" & DateAdd("n", -10, now()) & "'"
Connect.Execute strSQL,,128
If Request.Cookies("counter").haskeys = false Then strStatus = ", status = status + 3"
strSQL = "UPDATE anvandare SET datum = current_timestamp, update = current_timestamp, visits = visits + 1
" & strStatus & " WHERE Namn = '"&namn&"' AND Losen = '"&losen&"'"
Connect.Execute strSQL,,128
strSQL = "UPDATE anvandare (online) values ('Ja') WHERE Namn = '"&namn&"' AND Losen = '"&losen&"'"
Connect.Execute strSQL,,128
strSQL = "SELECT * FROM anvandare WHERE Namn = '"&namn&"' AND Losen = '"&losen&"' "
set RecSet = Connect.Execute(strSQL)
If Not RecSet.Eof Then
Session.timeout = 180
Session("online") = "ja"
Session("id") = Trim(RecSet("ID"))
Session("username") = Trim(RecSet("Namn"))
Session("user") = Trim(RecSet("Namn"))
Session("inl") = Trim(RecSet("datum"))
session("statuss") = Trim(RecSet("status"))
If RecSet("bild") <> "" Then
Session("bild") = RecSet("bild")
End If
Session("kolla") = "Nej"
Session("kollat") = "Nej"
Response.Cookies("qs") = Session("username")
Response.Cookies("qs").Expires = "17 Sep, 2035 "
Session("login") = ""
Session("hepp") = Trim(RecSet("ID"))
RecSet("datum") = NOW()
RecSet("update") = NOW()
RecSet("online") = "Ja"
RecSet("visits") = RecSet("visits") + 1
If Request.Cookies("counter").haskeys = false Then
RecSet("status") = RecSet("status") + 3
Response.cookies("counter")("raknad") = "true"
Response.cookies("counter").expires = date +1
End If
RecSet.Update
RecSet.Close
Connect.Close
Set RecSet = Nothing
Set Connect = Nothing
Response.Redirect("01start.asp")
Else
Session("login") = "Det finns ingen användare med det lösenordet eller det användarnamnet"
Response.Redirect("default1.asp")
end if
%>
Har skapat en databas som heter members, jag har testat mot mascon osv. Har rätt anv och lösenord.
Jag har isntallerat mysql,myodbc. mysql front visar ok.
:q
Vad kan vara fel?
262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e