09. oktober 2002 - 20:08
Der er
34 kommentarer og
1 løsning
ADO Connection fejl...?
Hej, jeg er ved at lave en hjemmeside i ASP. Jeg vil gerne lave en side/form hvor folk kan oprette dig som bruger på siden, for at gøre det, har jeg lavet følgende sider.
opretprivat.asp
Her har jeg skrevet følgende form, der gerne skulde videre siden, den info brugeren indtaster til siden "registrer-bruger.asp" der behandler informationerne og indsætter den i databasen.
Først har jeg oprettet en database i Microsoft Access XP, kaldet "maxdb.mdb", lagt den i den vietuelle sti "/maxdb/maxdb.mdb". I den har jeg oprettet en tabel kaldet "login" hvor jeg har lavet følgende poster: "brugernavn", "adgangskode", "fornavn", "efternavn", "adresse", "postnr", "by", "tlf", "mobil" & "email"
---
<FORM action = "registrer-bruger.asp" method="post" id="form1" name="form1" LANGUAGE="javascript" onsubmit="return form1_onsubmit()">
<TABLE cellSpacing="0" cellPadding="0" border="0">
<TR>
<TD align="center" colspan="2" valign="top">Opret ny Privat bruger</TD>
</TR>
<TR>
<TD valign="top" width="130">Ønsket Brugernavn :</TD>
<TD valign="top"><INPUT type="text" NAME="brugernavn" VALUE="" SIZE="20"></TD>
</TR>
<TR>
<TD valign="top" width="130">Ønsket Password :</TD>
<TD valign="top"><INPUT type="password" NAME="adgangskode" VALUE="" SIZE=20></TD>
</TR>
<TR>
<TD valign="top" width="130">Fornavn :</TD>
<TD valign="top"><INPUT type="text" NAME="fornavn" VALUE="" SIZE=20></TD>
</TR>
<TR>
<TD valign="top" width="130">Efternavn :</TD>
<TD valign="top"><INPUT type="text" NAME="efternavn" VALUE="" SIZE=20></TD>
</TR>
<TR>
<TD valign="top" width="130">Adresse :</TD>
<TD valign="top"><INPUT type="text" NAME="adresse" VALUE="" SIZE="35"></TD>
</TR>
<TR>
<TD valign="top" width="130">Post nr :</TD>
<TD valign="top"><INPUT type="text" NAME="postnr" VALUE="" SIZE="8"></TD>
</TR>
<TR>
<TD valign="top" width="130">By :</TD>
<TD valign="top"><INPUT type="text" NAME="by" VALUE="" SIZE="20"></TD>
</TR>
<TR>
<TD valign="top" width="130">Telefon nr :</TD>
<TD valign="top"><INPUT type="text" NAME="tlf" VALUE="" SIZE="10"></TD>
</TR>
<TR>
<TD valign="top" width="130">Mobil nr :</TD>
<TD valign="top"><INPUT type="text" NAME="mobil" VALUE="" SIZE="10"></TD>
</TR>
<TR>
<TD valign="top" width="130">E-Mail :</TD>
<TD valign="top"><INPUT type="text" NAME="email" VALUE="" SIZE="35"></TD>
</TR>
<TR>
<TD align="center" colspan="2" valign="top"><INPUT type="submit" value="Submit" id="submit1" name="submit1"></TD>
</TR></TABLE></FORM>
---
I min "registrer-bruger.asp" har jeg skrevet følgende :
<%
Dim sSQL,conn,rs
Set conn = Server.CreateObject("ADODB.Connection")
set rs = server.CreateObject("ADODB.Recordset")
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.ConnectionString = "Data Source=" & Server.MapPath("maxdb/maxdb.mdb")
conn.open
sSQL = "Insert into login (brugernavn,adgangskode,fornavn,efternavn,adresse,postnr,by,tlf,mobil,email) Values" & _ "('"& Ucase(Request("brugernavn")) & "', '"& Request("adgangskode") & "', '"& Request("fornavn") & "', '" & Request("efternavn") & "', '" & Request("adresse") & "', '" & Request("postnr") & "', '" & Request("by") & "', '" & Request("tlf") & "', '" & Request("mobil") & "', '" & Request("email") & "')"
conn.Execute sSQL,adCmdText
rs.close
set rs = nothing
conn.close
set conn = nothing
%>
Dine informationer er blevet gemt i vores database.<BR><BR>
<A href="login.asp">[Klik her for at logge ind]</A>
---
Når jeg nu åbner denne min "opretprivat.asp" siden og prøvet at oprette en bruger får jeg følgende fejl :
Microsoft VBScript compilation error '800a0408'
Invalid character
/registrer-bruger.asp, line 63
sSQL = "Insert into login (brugernavn,adgangskode,fornavn,efternavn,adresse,postnr,by,tlf,mobil,email) Values" & _ "('"& Ucase(Request("brugernavn")) & "', '"& Request("adgangskode") & "', '"& Request("fornavn") & "', '" & Request("efternavn") & "', '" & Request("adresse") & "', '" & Request("postnr") & "', '" & Request("by") & "', '" & Request("tlf") & "', '" & Request("mobil") & "', '" & Request("email") & "')"
---
Nogen der kan fortælle min hvorfor det ikke virker, og hvad jeg skal gøre for at få det til at virke?
Jeg har en anelse om at det måske er fordi databasen er lavet i Access XP, men kan det være det?
09. oktober 2002 - 20:21
#1
Begynd nmed at få luset denneher ud: By er et reserveret ord i SQL.
Så er der en _ , som måske ikke står sidst i en linie?
sSQL = "INSERT INTO login (" &_
"brugernavn, adgangskode, fornavn, efternavn" &_
", adresse, postnr, [by], tlf, mobil, email" &_
") Values (" &_
"'"& Ucase(Request("brugernavn")) & "'" &_
", '"& Request("adgangskode") & "'" &_
", '"& Request("fornavn") & "'" &_
", '" & Request("efternavn") & "'" &_
", '" & Request("adresse") & "'" &_
", '" & Request("postnr") & "'" &_
", '" & Request("by") & "'" &_
", '" & Request("tlf") & "'" &_
", '" & Request("mobil") & "'" &_
", '" & Request("email") & "')"
09. oktober 2002 - 20:40
#2
Jeg får stadig samme fejl :
Microsoft VBScript compilation error '800a0408'
Invalid character
/registrer-bruger.asp, line 63
sSQL = "INSERT INTO login (" &_ "brugernavn, adgangskode, fornavn, efternavn" &_ ", adresse, postnr, [by], tlf, mobil, email" &_ ") Values (" &_ "'"& Ucase(Request("brugernavn")) & "'" &_ ", '"& Request("adgangskode") & "'" &_ ", '"& Request("fornavn") & "'" &_ ", '" & Request("efternavn") & "'" &_ ", '" & Request("adresse") & "'" &_ ", '" & Request("postnr") & "'" &_ ", '" & Request("by") & "'" &_ ", '" & Request("tlf") & "'" &_ ", '" & Request("mobil") & "'" &_ ", '" & Request("email") & "')"
.... Hvordan kan det være?
09. oktober 2002 - 20:43
#3
Ok, jeg har prøvet at skrive det præsist som du skrev det, på hver sin linie.... det hjalp lidt. Men isteddet får jeg nu følgende fejl :
Microsoft VBScript runtime error '800a01bd'
Object doesn't support this action
/registrer-bruger.asp, line 59
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
Nogen foreslag?
09. oktober 2002 - 20:46
#4
Kan du ikke starte med at ændre dit by felt til noget andet.
09. oktober 2002 - 21:10
#5
Drop linien med conn.Provider = "Microsoft.Jet.OLEDB.4.0"
og skriv
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.Mappath("("maxdb/maxdb.mdb")
09. oktober 2002 - 21:17
#6
Hov, lille fejl
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.Mappath("maxdb/maxdb.mdb")
09. oktober 2002 - 21:26
#7
Nu får jeg følgende fejl :
ADODB.Connection.1 error '80004005'
SQLState: IM002
Native Error Code: 0
[INTERSOLV][ODBC lib] Data source name not found and no default driver specified
/registrer-bruger.asp, line 63
conn.open
Jeg har båede prøvet med og uden linien :
conn.ConnectionString = "Data Source=" & Server.MapPath("maxdb/maxdb.mdb")
Skal jeg fjerne denne linie? Lige nu står der :
<%
Dim sSQL,conn,rs
Set conn = Server.CreateObject("ADODB.Connection")
set rs = server.CreateObject("ADODB.Recordset")
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.Mappath("maxdb/maxdb.mdb")
conn.ConnectionString = "Data Source=" & Server.MapPath("maxdb/maxdb.mdb")
conn.open
sSQL = "INSERT INTO login (" &_
(og resten du gav mig)...
09. oktober 2002 - 21:32
#8
Du skal fjerne den
conn.ConnectionString = "Data Source=" & Server.MapPath("maxdb/maxdb.mdb")
der står lige før conn.open
09. oktober 2002 - 21:35
#9
Jeg får stadig samme fejl :-(
ADODB.Connection.1 error '80004005'
SQLState: IM002
Native Error Code: 0
[INTERSOLV][ODBC lib] Data source name not found and no default driver specified
/registrer-bruger.asp, line 62
conn.open
09. oktober 2002 - 21:57
#10
I linien du skrev :conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.Mappath("maxdb/maxdb.mdb")
Skal der være et "=" i "Data Source=" ?
09. oktober 2002 - 21:57
#11
Prøv lige at se om den kan finde databasen
response.write "debug " & Server.MapPath("maxdb/maxdb.mdb") & "<br>"
Bare put linien ind først i scriptet (efter <%, naturligvis)
09. oktober 2002 - 22:02
#12
>Skal der være et "=" i "Data Source=" ?
Ja, linien er en copy->paste fra en kørende site.
09. oktober 2002 - 22:02
#13
Jeg tror godt den kan finde den, jeg får følgende :
debug /home/webusers/www.max_data_dk/html/maxdb/maxdb.mdb
ADODB.Connection.1 error '80004005'
SQLState: IM002
Native Error Code: 0
[INTERSOLV][ODBC lib] Data source name not found and no default driver specified
/registrer-bruger.asp, line 63
conn.open
09. oktober 2002 - 22:29
#14
Jeg har lige kigget lidt på nogle asp guides til ADO, kan det ikke have noget at gøre med at jeg mangler en Application?
09. oktober 2002 - 22:41
#15
Nej.
I hvilket directory ligger registrer-bruger.asp ?
09. oktober 2002 - 22:44
#16
Files ligger i "/html" mappen hvor alle mine html dokumenter skal ligge for at blive vist, under den mappe, har jeg kun mit cgi-bin.
09. oktober 2002 - 22:46
#17
Jeg kan pakke alle mine filer ned i en zip fil og ligge den online så du kan hente den, hvis du vil?
09. oktober 2002 - 22:53
#18
/maxdb ligger vel også i /html ?
Du bør lige prøve noget andet:
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.Mappath("/maxdb/maxdb.mdb")
Det nye er / forrest i /maxdb osv
09. oktober 2002 - 22:59
#19
Det gør ikke nogen foreskel, giver præcis den samme meddelelse....
09. oktober 2002 - 23:02
#20
Så fjern bare / igen.
Ligger /maxdb i /html ?
09. oktober 2002 - 23:04
#21
ja den ligger i /html/maxdb/maxdb.mdb
09. oktober 2002 - 23:14
#23
hmmm. jeg kan desvære ikke genstarte severen, da siden er hostet hos et internet firma... nogen ideer til hvordan jeg måske kan løse problemmet?
09. oktober 2002 - 23:22
#24
Hvis problemet er det samme som det jeg var ude for forleden, så går det måske væk af sig selv i løbet af et par dage(!)
Du skulle måske benytte ventetiden til at få installeret en testserver på din egen maskine, Microsoft PWS.
09. oktober 2002 - 23:24
#25
Jeg har ISS & MSDE installeret. Er PWS bedre?
09. oktober 2002 - 23:27
#26
En access-base åbner jeg normalt med disse linier og ikke andet:
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("maxdb/maxdb.mdb")
Det virker på de fleste servere.
09. oktober 2002 - 23:31
#27
hvilket underligt nok helder ikke virker, tror du det kan have noget at gøre med den version af access jeg bruger=
09. oktober 2002 - 23:42
#29
Jeg har prøvet at skrive hvad der stod på siden, men...
Det giver stadig samme fejl. Det er linien "conn.open" den stadig siger der er fejl i....
09. oktober 2002 - 23:43
#30
Jeg bliver nødt til at smutte for iaften :-( Skal sku' tideligt op...
Jeg har lavt alt mit kode online, hvid der er nogen der vil kigge på det.
Det findes her :
http://www.max-data.dk/asp.zipKigger online imorgen inden jeg tager afsted, hvis nogen har fundet ud af noget.
11. oktober 2002 - 15:30
#31
ISS? Hvis du mener IIS er det den samme som PWS. PWS er en enkeltbruger version af IIS.
Nu har jeg i mellemtiden været ude for samme problem hos en af mine webhtel-providere (wannafind.dk). Genstart af serveren løste problemet.
12. oktober 2002 - 06:32
#32
Jeg har endelig fået det til at virke, prøvede det af under ISS, havde nogle små fejl men fik dem rettet. Problemmet lå ved min udbyder, så dem skal jeg lige have snakket med...
Mange tak for hjælpen Neteffect. Jeg vil gerne give dig dine point, men vil også gerne vide dig 50 flere, hvis du kan hjælpe mig med et enkelt spørgsmål mere...?
Hvordan kan jeg gøre så der bliver tjekket om folk er logget ind, så de ikke bare kan skrive url'en til min main side, og hoppe uden om login'et... hvis du forstår...?
12. oktober 2002 - 09:50
#33
12. oktober 2002 - 12:00
#34
Mange tak for hjælpen!
12. oktober 2002 - 12:10
#35
Tak for points. Led fejl.
Kurser inden for grundlæggende programmering