Avatar billede stefware Nybegynder
03. januar 2003 - 01:02 Der er 5 kommentarer og
1 løsning

Problem med gæstebog

Jeg har hentet et gæstebogs script på netcoders, og det har virket fint indtil d. 12/7, men nu kan man ikke lægge nyheder ind længere, jeg får følgende fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

/gaest/guestbook.asp, line 17

Her er scriptet:
<%
   
    dim conn
   
    function OpenConn( DBName )

        Set Conn = Server.CreateObject("ADODB.Connection")
        ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
        Conn.Open "DBQ=" & ODBCpath & DBName & ";DefaultDir=" & ODBCpath & ";Driver={Microsoft Access Driver (*.mdb)}"

    end function

    OpenConn("../gaest/guestbook.mdb")
   
    if request ("mode") = "opret" then
        SQL = "insert into guestbook (guest_name, comments, from_where, email) values ('" & request("guest_name") & "', '" & request("comments") & "', " & request("from_where") & ", '" & request("email") & "'  )"
        Conn.execute( SQL )
        Besked = "<br><h3>Dine kommentare er modtaget!</h3>"
        Besked2 = "Eller klik <a href='viewguest.asp'>her</a> for at se indlægene !<br><br>"
    end if

%>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="/indhold.css" type="text/css">
<script language="JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>

<body bgcolor="#FED2A7" text="#000000" background="../images/marie3.gif">
<table width="666" border="0" cellpadding="0" cellspacing="0" height="296">
  <tr>
    <td width="121" height="181"></td>
    <td valign="top" rowspan="4">
      <div align="center">
        <p align="center"><font face="Times New Roman, Times, serif"><b><font face="Verdana, Arial, Helvetica, sans-serif">
          Skriv i Cecilies g&aelig;stebog</font></b></font>
          <% = besked %>
          <% = besked2 %>
          <% if request ("mode") = "" then %>
        <form action="guestbook.asp" name=action>
<input type="hidden" Name="Mode" Value="opret">
<input type="hidden" Name="guest_id" Value="<% = Request("guest_id")%>">
          Navn :
          <INPUT type="text" name=guest_name><br><br>
          E-mail :
          <INPUT type="text" name=email><br><br>
          Skriv hilsen her:
        <br>
<TEXTAREA rows=4 cols=35 name=comments>
</TEXTAREA><br><br>


<br><br>
<input type="Submit" Value="Send" name=Submit1>
<input type="Reset" Value="Slet" name=Reset1><br><br>
</form>

<% End If
' Jesper Lund - jesper@netcoders.dk
%>
        </div>
      </td>
    <td width="44" height="181"></td>
  </tr>
  <tr>
    <td height="114" rowspan="3"></td>
    <td width="44"></td>
  </tr>
  <tr>
    <td width="44"></td>
  </tr>
  <tr>
    <td width="44" height="2"></td>
  </tr>
</table>
</body>
</html>
Avatar billede erikjacobsen Ekspert
03. januar 2003 - 01:07 #1
Dit from_where defineres ikke noget sted i din form. Hvad
er typen af dette felt i din tabel - tal eller tekst?
Avatar billede stefware Nybegynder
03. januar 2003 - 01:16 #2
from_where er def. som tekst, men bliver ikke brugt af scriptet hverken ved indsættelse af eller trækning af data, så det er bare tomme felter i DB.

Forresten er linien:
OpenConn("../gaest/guestbook.mdb")
OpenConn("guestbook.mdb")

Da databasen trækkes samme dir, det var bare en test.
Avatar billede erikjacobsen Ekspert
03. januar 2003 - 01:19 #3
Så retter du til
SQL = "insert into guestbook (guest_name, comments, from_where, email) values ('" & request("guest_name") & "', '" & request("comments") & "', '" & request("from_where") & "', '" & request("email") & "'  )"

og prøver - der er en lille chance for at det ikke virker. Men prøv.
Avatar billede stefware Nybegynder
03. januar 2003 - 01:27 #4
Så får jeg denne fejl
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Field 'guestbook.from_where' cannot be a zero-length string.

/gaest/guestbook.asp, line 17
Avatar billede erikjacobsen Ekspert
03. januar 2003 - 13:44 #5
SQL = "insert into guestbook (guest_name, comments, from_where, email) values ('" & request("guest_name") & "', '" & request("comments") & "', '" & request("from_where") & " ', '" & request("email") & "'  )"

...det er lidt snyd, Du burde definere dit felt til at tillade
nullængde strenge
Avatar billede stefware Nybegynder
08. januar 2003 - 00:09 #6
Takker for hjælpen!
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