Du har inte postat all kod va?
Felet skulle kunna vara här
connection.execute("MySQL")
men det är svårt att säga.
Posta inte lösenord i forum!!!
25 svar · 2 088 visningar · startad av Mycodez
Hej jag håller på med att fixa en inloggning/ registrering på min hemsida, men det vill inte funka :(
jag får följande fel medelande
Microsoft VBScript runtime error '800a01a8'
Object required: ''
/doreg.asp, line 27
och min kod är:
<%
connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=xxxxx;Option=3;Database=xxxxx;Uid=xxxxx;Pwd=xxxxx;"
username=request.Form("username")
pass=request.Form("pass")
name=request.Form("name")
mail=request.Form("mail")
SQL="INSERT INTO medlem(username, password, name, mail)"
SQL=SQL & "values('" & username & "','" & password & "','" & name & "','" & mail & "')"
connection.execute("MySQL")
response.Redirect("index.asp")
%>
jag är felet skulle vara snäll om ni skulle kunna skriva ut rätt kod på det som är fel.
Tack på för hand.
Du har inte postat all kod va?
Felet skulle kunna vara här
connection.execute("MySQL")
men det är svårt att säga.
Posta inte lösenord i forum!!!
Jag redigerade bort lösenord, användarnamn och servernamn för din säkerhet, Mycodez. Jag passade även på att lägga kod-taggar runt koden så den blir mer läslig. (Välkommen till webForum förresten.)
Vad gäller din kod måste du skapa ett objekt för din anslutning. connection finns ju inte när den satsen körs.
Dessutom måste du skicka SQL-frågan. "MySQL" är inte din SQL-fråga, den ligger i variabeln SQL.
Prova detta: (Ny/ändrade bitar i fetstil)
<%
connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=xxxxx;Option=3;Database=xxxxx;Uid=xxxxx;Pwd=xxxxx;"
[B]set connection=Server.CreateObject(connectionString)[/B]
username=request.Form("username")
pass=request.Form("pass")
name=request.Form("name")
mail=request.Form("mail")
SQL="INSERT INTO medlem(username, password, name, mail)"
SQL=SQL & "values('" & username & "','" & password & "','" & name & "','" & mail & "')"
connection.execute([B]SQL[/B])
response.Redirect("index.asp")
%>
Dessutom måste du escapea indatan, annars kommer frågan misslyckas varje gång någon skriver ett ' i någon ruta eftersom MySQL tror att strängen slutar där. Vad värre är, är att en illvillig person kan köra SQL-kod på detta vis.
Men det vet jag inte hur man fixar i klassisk SQL, det får någon annan hjälpa till med.
Tack.. Då vet jag att man inte ska göra det. jag gjorde dem ändringar som du sa nitro2k01 men då fick jag detta error medelande istället
Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
/doreg.asp, line 16
800401f3
Vad gjorde jag för fel??
jag är en Nybörjare på detta.
snälla hjälp mig
Har du MySQL installerat så du kan skapa objektet?
Men det nitro2k01 menar nog är mer:
<%
connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=xxxxx;Option=3;Database=xxxxx;Uid=xxxxx;Pwd=xxxxx;"
[b]set connection = Server.CreateObject("ADODB.Connection")
objConnection.Open(connectionString)[/b]
username=request.Form("username")
pass=request.Form("pass")
name=request.Form("name")
mail=request.Form("mail")
SQL="INSERT INTO medlem(username, password, name, mail)"
SQL=SQL & "values('" & username & "','" & password & "','" & name & "','" & mail & "')"
connection.execute(SQL)
[b]set connection = Nothing[/b]
response.Redirect("index.asp")
%>
Jag har MySQL installerat jag fick det an Binero det är där jag har min hemsida. så den MySQL har jag. men när jag gjorde som du sa voigtann1 så fick jag detta fel medelande igen
Microsoft VBScript runtime error '800a01a8'
Object required: ''
/doreg.asp, line 17
<%
connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=******;Option=3;Database=******;Uid=******;Pwd=******;"
set connection=Server.CreateObject("ADODB.Connection")
objConnection.Open(connectionString)
username=request.Form("username")
pass=request.Form("pass")
name=request.Form("name")
mail=request.Form("mail")
SQL="INSERT INTO medlem(username, password, name, mail)"
SQL=SQL & "values('" & username & "','" & password & "','" & name & "','" & mail & "')"
'respone.Write(SQL)
'kör kod
connection.execute("SQL")
set connection = Nothing
response.Redirect("index.asp")
%>
Förlåt men jag fattar inte vad som blir fel :(
Underlättar om du säger vilken rad som är 17
Men jag ser ett fel jag har gjort objConnection skall vara connection
sorry glömde det är
objConnection.Open(connectionString)
men om jag har förstår detta rätt nu så menar du att det ska vara
objConnection.Connection(open)
Nej, objConnection skall vara Connection, det är ju det objektet är skapad som
<%
connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=******;Option=3;Database=******;Uid=******;Pwd=******;"
set connection=Server.CreateObject("ADODB.Connection")
[b]connection[/b].Open(connectionString)
username=request.Form("username")
pass=request.Form("pass")
name=request.Form("name")
mail=request.Form("mail")
SQL="INSERT INTO medlem(username, password, name, mail)"
SQL=SQL & "values('" & username & "','" & password & "','" & name & "','" & mail & "')"
'respone.Write(SQL)
'kör kod
connection.execute("SQL")
set connection = Nothing
response.Redirect("index.asp")
%>
connection.execute("SQL")
Ska vara:
connection.execute(SQL)
connection.execute("SQL")
Ska vara:
connection.execute(SQL)
precis, tog för givet att Mycodez utgick ifrån nitro2k01 kod
jag ändra den koden voigotann1 gav mig men då kommer detta error felet upp
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[MySQL][ODBC 3.51 Driver]Access denied for user 'web77725_master'@'%' to database 'web77725_mycdoez'
/doreg.asp, line 17
jag har googlat error medelandet men har inte förståt mig på det. plus jag har försökt klura ut vart felet kan vara är det enklare an vad jag tror?
men detta är koden jag kör på nu
[<%
connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=******;Option=3;Database=******;Uid=******;Pwd=******;"
set connection=Server.CreateObject("ADODB.Connection")
Connection.open(connectionString)
username=request.Form("username")
pass=request.Form("pass")
name=request.Form("name")
mail=request.Form("mail")
SQL="INSERT INTO medlem(username, password, name, mail)"
SQL=SQL & "values('" & username & "','" & password & "','" & name & "','" & mail & "')"
connection.execute(SQL)
set connection = Nothing
response.Redirect("index.asp")
%>
och rad 17 är :
Connection.open(connectionString)
så vad kan felet vara?
Se till att du har en anslutning till din mysql databas och att det är korrekt uppgifter.
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-5.0.45]Unknown column 'username' in 'field list'
/doreg.asp, line 26
vad menas med det error medelandet och koden till rad 26 är:
connection.execute (SQL)
Fältet 'username' finns inte i din databas.
Tack nu funkar det att bli medlem på min sida men nu kommer Problemet med inloggningen. :/
När jag försöker logga in på min sida så kommer detta upp
Microsoft VBScript runtime error '800a000d'
Type mismatch
/dologin.asp, line 27
rad 27 är
if rs("antal")=1 then 'om vi har fått en träff i databasen
här är all min kod till dologin.asp
<%
connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=******;Option=3;Database=******;Uid=*******r;Pwd=********;"
Set connection=Server.CreateObject("ADODB.Connection")
connection.open(connectionString)
username=request.Form("username")
password=request.Form("password")
SQL="select count(*) as antal from medlem where username ='"& username & "' and password='"& password &"'"
set rs=connection.execute(SQL)
if rs("antal")=1 then 'om vi har fått en träff i databasen
session("medlem")=username 'tilldelar sessionvariablen. värdet i username
response.Redirect("in.asp")'länkar till sida
else
response.Redirect("fel.asp")
end if
%>
Du måste ju kolla att rs inte är EOF, vilket den verkar vara:
set rs=connection.execute(SQL)
if Not RS.EOF Then 'om vi har fått en träff i databasen
session("medlem")=username 'tilldelar sessionvariablen. värdet i username
response.Redirect("in.asp")'länkar till sida
else
response.Redirect("fel.asp")
end if
%>
Dock så måste du nog kolla upp mot SQL injection annars är din databas rätt så körd i framtiden om du inte säkra upp den.
Tack det funkar fin fint nu med in och utlognigen tack så mycket. :) kanske kommer med en ny tråd om det är problem med Forumet jag har nästan färdigt :)
Hur sätter man tråden som löst?