Avatar billede Slettet bruger
01. august 2005 - 23:15 Der er 13 kommentarer og
1 løsning

auktionscript - gem bud i DB?

jeg sidder og forsøger, at lave et auktions script til min side... når der bydes på en vare, så kan ikke få scriptet til at gemme budet i min database. Er der nogen der kan se hvad fejlen er.
__________
bud.asp
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<form method="POST" action="save.asp">
  <input type="hidden" name="Mode" value="bud">
  <input type="hidden" name="Id" value="<%= Request("Id") %>">
<tr>
<td width="80">Navn:</td>
<td>
<input type="text" name="navn" size="20" class="input"></td>
</tr>
<tr>
<td width="80">Adresse:</td>
<td>
<input type="text" name="adresse" size="20" class="input"></td>
</tr>
<tr>
<td width="80">Postnr:</td>
<td>
<input type="text" name="postnummer" size="4" class="input"></td>
</tr>
<tr>
<td width="80">By:</td>
<td>
<input type="text" name="by" size="20" class="input"></td>
</tr>
<tr>
<td width="80">Telefon:</td>
<td>
<input type="text" name="telefon" size="20" class="input"></td>
</tr>
<tr>
<td width="80">Email:</td>
<td>
<input type="text" name="email" size="20" class="input"></td>
</tr>
<tr>
<td width="80">Næste bud</td>
<td>
<input type="text" name="bud" size="6" class="input">
Dkr.</td>
</tr>
<tr>
<td width="80">&nbsp;</td>
<td>
<input type="submit" value="Byd" name="B1" class="submit"></td>
</tr>
<tr>
<td width="80">&nbsp;</td>
<td>
&nbsp;</td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
</form>
</table>
</body>
</html>
---------
save.asp
<%
  ' Declaring variables
  Dim navn, adresse, postnummer, by, telefon, email, bud, data_source, con, sql_insert

  ' A Function to check if some field entered by user is empty
  Function ChkString(string)
  If string = "" Then string = " "
  ChkString = Replace(string, "'", "''")
  End Function

  ' Receiving values from Form
  navn = ChkString(Request.Form("navn"))
  adresse = ChkString(Request.Form("adresse"))
  postnummer = ChkString(Request.Form("postnummer"))
  by = ChkString(Request.Form("by"))
  telefon = ChkString(Request.Form("telefon"))
  email = ChkString(Request.Form("email"))
  bud = ChkString(Request.Form("bud"))
  Id = ChkString(Request.Form("Id"))

  data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("dagbog.mdb")
sql_insert = "insert into bud (Id, navn, adresse, postnummer, by, telefon, email, bud                datobud) values (" & Id & ", '" & navn & "', '" & adresse & "', '" & postnummer & "', '" & by & "', '" & telefon & "', '" & email & "', '" & bud & "', Date(), '"

  ' Creating Connection Object and opening the database
  Set con = Server.CreateObject("ADODB.Connection")
  con.Open data_source
  con.Execute sql_insert
  ' Done. Close the connection
  con.Close
  Set con = Nothing
  Response.Write "Tak for dit bud."
      ' =============================================
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ContentType = "text/html"
JMail.ServerAddress = "mail3.cliche.dk"
JMail.Priority = 1
JMail.Sender = "test@test.dk"
JMail.AddRecipientEx "test@test.dk", ""
Jmail.AddRecipientCC ""
Jmail.AddRecipientBCC ""
JMail.Subject = "Der er givet et bud.."
JMail.Body = "Der er givet et bud."
JMail.Execute
Set JMail = Nothing

%>
</body>
</html>
Avatar billede thesurfer Nybegynder
02. august 2005 - 01:09 #1
Der skal nok stå "bud, datobud" i stedet for "bud                datobud"..

og "', '" & bud & "', #" & Date() & "#)" i stedet for din slutning på SQL-strengen..

Får du nogen fejl? Hvis ja, kopier hele fejlmeddelelsen her ind.. dvs, inkl. linienummer og selve linien, hvor den melder fejl..

/theSurfer
Avatar billede Slettet bruger
02. august 2005 - 01:21 #2
jeg får kun denne fejl HTTP 500 - Intern serverfejl
Internet Explorer
jeg har rettet save.asp til dette:
<%
  ' Declaring variables
  Dim navn, adresse, postnummer, by, telefon, email, bud, data_source, con, sql_insert

  ' A Function to check if some field entered by user is empty
  Function ChkString(string)
  If string = "" Then string = " "
  ChkString = Replace(string, "'", "''")
  End Function

  ' Receiving values from Form
  navn = ChkString(Request.Form("navn"))
  adresse = ChkString(Request.Form("adresse"))
  postnummer = ChkString(Request.Form("postnummer"))
  by = ChkString(Request.Form("by"))
  telefon = ChkString(Request.Form("telefon"))
  email = ChkString(Request.Form("email"))
  bud = ChkString(Request.Form("bud"))
  Id = ChkString(Request.Form("Id"))

  data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("dagbog.mdb")
sql_insert = "insert into bud (Id, navn, adresse, postnummer, by, telefon, email, bud, dato) values (" & Id & ", '" & navn & "', '" & adresse & "', '" & postnummer & "', '" & by & "', '" & telefon & "', '" & email & "'', '" & bud & "', #" & Date() & "#)"

  ' Creating Connection Object and opening the database
  Set con = Server.CreateObject("ADODB.Connection")
  con.Open data_source
  con.Execute sql_insert
  ' Done. Close the connection
  con.Close
  Set con = Nothing
  Response.Write "Tak for dit bud."
      ' =============================================
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ContentType = "text/html"
JMail.ServerAddress = "mail3.cliche.dk"
JMail.Priority = 1
JMail.Sender = "test@test.dk"
JMail.AddRecipientEx "test@test.dk", ""
Jmail.AddRecipientCC ""
Jmail.AddRecipientBCC ""
JMail.Subject = "Der er givet et bud.."
JMail.Body = "Der er givet et bud."
JMail.Execute
Set JMail = Nothing

%>
</body>
</html>
Avatar billede thesurfer Nybegynder
02. august 2005 - 01:37 #3
Prøv at vælge tools > internet options > advanced > og fravælg "show friendly http error messages" i internet explorer.

På dansk (noget i stil med): Funktioner > Internet indstillinger > Avanceret > Vis venlige http fejl"

Hvilken fejl får du så?

/theSurfer
Avatar billede Slettet bruger
02. august 2005 - 01:45 #4
jeg har rettet i min browser som beskrevet ovenfor, men får kun fejl HTTP 500 - Intern serverfejl
Internet Explorer

jeg har lagt bud.asp og save.asp ud her  http://www.dianna.dk/test/bud.asp
Avatar billede thesurfer Nybegynder
02. august 2005 - 01:47 #5
Jeg får fejlen:

Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/test/save.asp, line 27

Prøv igen (mht indstillingerne)..

/theSurfer
Avatar billede thesurfer Nybegynder
02. august 2005 - 02:05 #6
PS: Jeg bruger browseren Opera: http://www.opera.com/download
Jeg synes at den klart er bedre end Internet Explorer.. og har knap så mange sikkerhedsfejl..

Læs evt:
http://www.computerworld.dk/default.asp?Mode=2&ArticleID=24297
http://www.computerworld.dk/default.asp?Mode=2&ArticleID=26173

/theSurfer
Avatar billede Slettet bruger
02. august 2005 - 02:15 #7
Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/test/save.asp, line 27

save.asp, line 27 står der:
con.Execute sql_insert

med opera kan jeg se fejlene men ikke med avant browser...
Avatar billede thesurfer Nybegynder
02. august 2005 - 02:20 #8
Avant Browser er en overbygning til Internet Explorer.. det er stadig IE og det stinker :-)

Den giver dig 2 hints:
1) Syntax error in INSERT INTO statement.
2) con.Execute sql_insert

Fejlen ligger i din SQL-sætning:

sql_insert = "insert into bud (Id, navn, adresse, postnummer, by, telefon, email, bud, dato) values (" & Id & ", '" & navn & "', '" & adresse & "', '" & postnummer & "', '" & by & "', '" & telefon & "', '" & email & "'', '" & bud & "', #" & Date() & "#)"

"by" (dansk ord) er også en engelsk ord, der er reserveret, når det gælder SQL. Der skal derfor stå [by]:

... (Id, navn, adresse, postnummer, [by], telefon, ...

Prøv med det..
Jeg kan ikke lige huske, om "Id" også er registreret.. finder lige en list.. Er det MS Access (97/2000) eller MySQL?

/theSurfer
Avatar billede thesurfer Nybegynder
02. august 2005 - 02:21 #9
MS Access 2000: http://support.microsoft.com/kb/q209187/

/theSurfer
Avatar billede Slettet bruger
02. august 2005 - 02:33 #11
det vil sige save.asp skal se sådan ud:
<%
  ' Declaring variables
  Dim navn, adresse, postnummer, by, telefon, email, bud, data_source, con, sql_insert

  ' A Function to check if some field entered by users is empty
  Function ChkString(string)
  If string = "" Then string = " "
  ChkString = Replace(string, "'", "''")
  End Function

  ' Receiving values from Form
  navn = ChkString(Request.Form("navn"))
  adresse = ChkString(Request.Form("adresse"))
  postnummer = ChkString(Request.Form("postnummer"))
  by = ChkString(Request.Form("by"))
  telefon = ChkString(Request.Form("telefon"))
  email = ChkString(Request.Form("email"))
  bud = ChkString(Request.Form("bud"))
  Id = ChkString(Request.Form("Id"))

  data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("dagbog.mdb")
sql_insert = "insert into bud (Id, navn, adresse, postnummer, [by], telefon, email, bud, dato) values (" & Id & ", '" & navn & "', '" & adresse & "', '" & postnummer & "', '" & by & "', '" & telefon & "', '" & email & "'', '" & bud & "', #" & Date() & "#)"

  ' Creating Connection Object and opening the database
  Set con = Server.CreateObject("ADODB.Connection")
  con.Open data_source
  con.Execute sql_insert
  ' Done. Close the connection
  con.Close
  Set con = Nothing
  Response.Write "Tak for dit bud."
      ' =============================================
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ContentType = "text/html"
JMail.ServerAddress = "mail3.cliche.dk"
JMail.Priority = 1
JMail.Sender = "test@test.dk"
JMail.AddRecipientEx "test@test.dk", ""
Jmail.AddRecipientCC ""
Jmail.AddRecipientBCC ""
JMail.Subject = "Der er givet et bud.."
JMail.Body = "Der er givet et bud."
JMail.Execute
Set JMail = Nothing

%>
</body>
</html>
Avatar billede Slettet bruger
02. august 2005 - 04:33 #12
jeg har fået det til at virke... save.asp:
<%
  ' Declaring variables
  Dim navn, adresse, postnummer, town, telefon, email, bud, data_source, con, sql_insert

  ' A Function to check if some field entered by user is empty
  Function ChkString(string)
  If string = "" Then string = " "
  ChkString = Replace(string, "'", "''")
  End Function

  ' Receiving values from Form
  navn = ChkString(Request.Form("navn"))
  adresse = ChkString(Request.Form("adresse"))
  postnummer = ChkString(Request.Form("postnummer"))
  town = ChkString(Request.Form("town"))
  telefon = ChkString(Request.Form("telefon"))
  email = ChkString(Request.Form("email"))
  bud = ChkString(Request.Form("bud"))
  Id = ChkString(Request.Form("Id"))

  data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
            Server.MapPath("form.mdb")
sql_insert = "insert into users (navn, adresse, postnummer, town, telefon, email, bud, dato) values ('" & navn & "', '" & adresse & "', '" & postnummer & "', '" & town & "', '" & telefon & "', '" & email & "', '" & bud & "','"&date()&"')"

så nu virker det :-)
Avatar billede Slettet bruger
02. august 2005 - 04:44 #13
thesurfer smid lige et svar, så får du nogle point ... du brugte da en del tid :-)
Avatar billede thesurfer Nybegynder
02. august 2005 - 19:32 #14
Her er et svar :-)

[by] burde virke lige så godt, som f.eks. town ..

/theSurfer
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester