webForumDet fria alternativet

inloggning från access till mysql

ASP

12 svar · 347 visningar · startad av Qimen

Medlem sedan juni 20015 009 inlägg
Frågan#1

Hej

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 ;)

Medlem sedan jan. 2003188 inlägg
#2

du kan bara använda dig av SQL fråger... så börja byt ut till det...
sen om du får felmeddelande så kolla vad det står på dom...

du måste ändra connection strängen också... till:

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver=MySQL;server=localhost;uid=root;database=dindatabas"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Medlem sedan juni 20015 009 inlägg
#3

Humm men det var ju med sql frågorna jag har problem med.
Jag vill ju byta ut dem.
Kör jag som det är nu fast med mysql connection så får jag bara:

ODBC-drivrutinen stöder inte de begärda egenskaperna.
/px/check.asp, line 19

och rad 19 är:

RecSet.Open SQL, Connect, 3,3
Medlem sedan jan. 2003188 inlägg
#4

hmm... då är det inte sql-satserna det är fel på... har du instalerat odbc resursen för MySQL då??

Medlem sedan juni 20015 009 inlägg
#5

jepp har mysql och myodbc installerat, kör med iis5

Medlem sedan jan. 2003188 inlägg
#6

okey... och du är säker på att du har instalerat det på så sätt att den kör från localhost??

Medlem sedan juni 20015 009 inlägg
#7

ja, jag får ju kontakt med den i mysqlfront och i mascon

Medlem sedan jan. 2003188 inlägg
#8

hur har du skrivit från rad 1 till 19??

Medlem sedan juni 20015 009 inlägg
#9
<%@ 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 :/

Medlem sedan juni 20015 009 inlägg
#10

Någon som vet hur jag ska ändra min kod för att få den kompatibell med mysql?

Medlem sedan feb. 2002116 inlägg
#11

Tycker koden ser ut att fungera med MySQL, men prova att byt ut din Record-set-öppning till nedanstående:

Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open SQL, Connect
Medlem sedan juni 200032 967 inlägg
#12

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

Mvh

Medlem sedan juni 20015 009 inlägg
#13

Hum jag får bara problem....

mysqljävel skrev:

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?

614 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
460 ms — hämta tråd, inlägg och bilagor (db)
151 ms — ändringar (db)