Avatar billede th1 Nybegynder
25. april 2004 - 16:01 Der er 21 kommentarer og
2 løsninger

Hvorfor virker ikke submit

Hej  jeg er ved at få en gæstebog til at virke  den virker også fint indtil jeg tykker på send(submit)  så kommer der  Siden kan ikke vises  500 fejl

håber nogen kan hjælpe mig

jeg har min egne server  windows server 2003

m.v.h. to
Avatar billede Meggel Novice
25. april 2004 - 16:02 #1
kan vi ser dine koder `?
Avatar billede th1 Nybegynder
25. april 2004 - 16:06 #2
ja vil du se koden der hvor fejlen kommer eller på selve add.asp  .. når jeg skal trykke på submit skal jeg komme til filen add.asp  det gør jeg også det kommer bare den 500 fejl
Avatar billede Meggel Novice
25. april 2004 - 16:11 #3
jamen kan du ikke skrive koderne som står i de filer som du bruger..
Avatar billede th1 Nybegynder
25. april 2004 - 16:17 #4
jo


her koden for add.asp



<%@LANGUAGE="VBSCRIPT"%><%
' *** Insert Record: construct a sql insert statement and execute it
MM_editAction = CStr(Request("URL"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Request.QueryString
End If
If (CStr(Request("MM_insert")) <> "") Then

  MM_tableName = "guest"
  MM_fields = "name,name,',none,'',location,location,',none,'',link,link,',none,'',comments,comment,',none,''"
  MM_redirectPage = "thanks.htm"

  ' create the insert sql statement
  MM_tableValues = ""
  MM_dbValues = ""
  MM_fieldsArray = Split(MM_fields, ",")
  For i = LBound(MM_fieldsArray) To UBound(MM_fieldsArray) Step 5
    FormVal = CStr(Request.Form(MM_fieldsArray(i)))
    Delim = MM_fieldsArray(i+2)
    If (Delim = "none") Then Delim = ""
    AltVal = MM_fieldsArray(i+3)
    If (AltVal = "none") Then AltVal = ""
    EmptyVal = MM_fieldsArray(i+4)
    If (EmptyVal = "none") Then EmptyVal = ""
    If (FormVal = "") Then
      FormVal = EmptyVal
    Else
      If (AltVal <> "") Then
        FormVal = AltVal
      ElseIf (Delim = "'") Then  ' escape quotes
        FormVal = "'" & Replace(FormVal,"'","''") & "'"
      Else
        FormVal = Delim + FormVal + Delim
      End If
    End If
    If (i <> LBound(MM_fieldsArray)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End if
    MM_tableValues = MM_tableValues & MM_fieldsArray(i+1)
    MM_dbValues = MM_dbValues & FormVal
  Next
  MM_insertStr = "insert into " & MM_tableName & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  ' finish the sql and execute it
  Set MM_insertCmd = Server.CreateObject("ADODB.Command")
  MM_insertCmd.ActiveConnection = "dsn=guest;"
  MM_insertCmd.CommandText = MM_insertStr
  MM_insertCmd.Execute

  ' redirect with URL parameters
  If (MM_redirectPage = "") Then
    MM_redirectPage = CStr(Request("URL"))
  End If
  If (InStr(1, MM_redirectPage, "?", vbTextCompare) = 0 And (Request.QueryString <> "")) Then
    MM_redirectPage = MM_redirectPage & "?" & Request.QueryString
  End If
  Call Response.Redirect(MM_redirectPage)
End If
%> <%
set rsRecords = Server.CreateObject("ADODB.Recordset")
rsRecords.ActiveConnection = "dsn=guest;"
rsRecords.Source = "SELECT name, location, link, comment, date FROM guest"
rsRecords.CursorType = 0
rsRecords.CursorLocation = 2
rsRecords.LockType = 3
rsRecords.Open
rsRecords_numRows = 0
%>
<html>
<head>
<title>Sign Guestbook</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<form name="form1" method="post" action="<%=MM_editAction%>">
  <table width="75%">
    <tr>
      <td colspan="2">
        <div align="center"><font size="+2"><b>Please sign our guestbook</b></font></div>
      </td>
    </tr>
    <tr>
      <td colspan="2">
        <div align="center"><font size="-1"><b>* Indicates a required field</b></font></div>
      </td>
    </tr>
    <tr>
      <td>Name*:</td>
      <td>
        <input type="text" name="name">
      </td>
    </tr>
    <tr>
      <td>Location:</td>
      <td>
        <input type="text" name="location">
      </td>
    </tr>
    <tr>
      <td>Link*:</td>
      <td>
        <input type="text" name="link" value="http://">
      </td>
    </tr>
    <tr>
      <td>Comments*:</td>
      <td>
        <input type="text" name="comments">
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>
        <input type="submit" name="Submit" value="Submit">
        <input type="submit" name="reset" value="Reset">
      </td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="true">
</form>
</body>
</html>




her er så koden for view.asp: 


<%@LANGUAGE="VBSCRIPT"%>
<%
set rsPost = Server.CreateObject("ADODB.Recordset")
rsPost.ActiveConnection = "dsn=guest;"
rsPost.Source = "SELECT name, location, link, comment, date FROM guest"
rsPost.CursorType = 0
rsPost.CursorLocation = 2
rsPost.LockType = 3
rsPost.Open
rsPost_numRows = 0
%><%
Dim Repeat1__numRows
Repeat1__numRows = 10
Dim Repeat1__index
Repeat1__index = 0
rsPost_numRows = rsPost_numRows + Repeat1__numRows
%> <%
'  *** Recordset Stats, Move To Record, and Go To Record: declare stats variables

' set the record count
rsPost_total = rsPost.RecordCount

' set the number of rows displayed on this page
If (rsPost_numRows < 0) Then
  rsPost_numRows = rsPost_total
Elseif (rsPost_numRows = 0) Then
  rsPost_numRows = 1
End If

' set the first and last displayed record
rsPost_first = 1
rsPost_last  = rsPost_first + rsPost_numRows - 1

' if we have the correct record count, check the other stats
If (rsPost_total <> -1) Then
  If (rsPost_first > rsPost_total) Then rsPost_first = rsPost_total
  If (rsPost_last > rsPost_total) Then rsPost_last = rsPost_total
  If (rsPost_numRows > rsPost_total) Then rsPost_numRows = rsPost_total
End If
%> <%
' *** Recordset Stats: if we don't know the record count, manually count them

If (rsPost_total = -1) Then

  ' count the total records by iterating through the recordset
  rsPost_total=0
  While (Not rsPost.EOF)
    rsPost_total = rsPost_total + 1
    rsPost.MoveNext
  Wend

  ' reset the cursor to the beginning
  If (rsPost.CursorType > 0) Then
    rsPost.MoveFirst
  Else
    rsPost.Requery
  End If

  ' set the number of rows displayed on this page
  If (rsPost_numRows < 0 Or rsPost_numRows > rsPost_total) Then
    rsPost_numRows = rsPost_total
  End If

  ' set the first and last displayed record
  rsPost_first = 1
  rsPost_last = rsPost_first + rsPost_numRows - 1
  If (rsPost_first > rsPost_total) Then rsPost_first = rsPost_total
  If (rsPost_last > rsPost_total) Then rsPost_last = rsPost_total

End If
%> <%
' *** Move To Record and Go To Record: declare variables

Set MM_rs    = rsPost
MM_rsCount  = rsPost_total
MM_size      = rsPost_numRows
MM_uniqueCol = ""
MM_paramName = ""
MM_offset = 0
MM_atTotal = false
MM_paramIsDefined = false
If (MM_paramName <> "") Then
  MM_paramIsDefined = (Request.QueryString(MM_paramName) <> "")
End If
%> <%
' *** Move To Record: handle 'index' or 'offset' parameter

if (Not MM_paramIsDefined And MM_rsCount <> 0) then

  ' use index parameter if defined, otherwise use offset parameter
  r = Request.QueryString("index")
  If r = "" Then r = Request.QueryString("offset")
  If r <> "" Then MM_offset = Int(r)

  ' if we have a record count, check if we are past the end of the recordset
  If (MM_rsCount <> -1) Then
    If (MM_offset >= MM_rsCount Or MM_offset = -1) Then  ' past end or move last
      If ((MM_rsCount Mod MM_size) > 0) Then        ' last page not a full repeat region
        MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
      Else
        MM_offset = MM_rsCount - MM_size
      End If
    End If
  End If

  ' move the cursor to the selected record
  i = 0
  While ((Not MM_rs.EOF) And (i < MM_offset Or MM_offset = -1))
    MM_rs.MoveNext
    i = i + 1
  Wend
  If (MM_rs.EOF) Then MM_offset = i  ' set MM_offset to the last possible record

End If
%> <%
' *** Move To Record: if we dont know the record count, check the display range

If (MM_rsCount = -1) Then

  ' walk to the end of the display range for this page
  i = MM_offset
  While (Not MM_rs.EOF And (MM_size < 0 Or i < MM_offset + MM_size))
    MM_rs.MoveNext
    i = i + 1
  Wend

  ' if we walked off the end of the recordset, set MM_rsCount and MM_size
  If (MM_rs.EOF) Then
    MM_rsCount = i
    If (MM_size < 0 Or MM_size > MM_rsCount) Then MM_size = MM_rsCount
  End If

  ' if we walked off the end, set the offset based on page size
  If (MM_rs.EOF And Not MM_paramIsDefined) Then
    If (MM_offset > MM_rsCount - MM_size Or MM_offset = -1) Then
      If ((MM_rsCount Mod MM_size) > 0) Then
        MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
      Else
        MM_offset = MM_rsCount - MM_size
      End If
    End If
  End If

  ' reset the cursor to the beginning
  If (MM_rs.CursorType > 0) Then
    MM_rs.MoveFirst
  Else
    MM_rs.Requery
  End If

  ' move the cursor to the selected record
  i = 0
  While (Not MM_rs.EOF And i < MM_offset)
    MM_rs.MoveNext
    i = i + 1
  Wend
End If
%> <%
' *** Move To Record: update recordset stats

' set the first and last displayed record
rsPost_first = MM_offset + 1
rsPost_last  = MM_offset + MM_size
If (MM_rsCount <> -1) Then
  If (rsPost_first > MM_rsCount) Then rsPost_first = MM_rsCount
  If (rsPost_last > MM_rsCount) Then rsPost_last = MM_rsCount
End If

' set the boolean used by hide region to check if we are on the last record
MM_atTotal = (MM_rsCount <> -1 And MM_offset + MM_size >= MM_rsCount)
%> <%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then MM_removeList = MM_removeList & "&" & MM_paramName & "="
MM_keepURL="":MM_keepForm="":MM_keepBoth="":MM_keepNone=""

' add the URL parameters to the MM_keepURL string
For Each Item In Request.QueryString
  NextItem = "&" & Item & "="
  If (InStr(1,MM_removeList,NextItem,1) = 0) Then
    MM_keepURL = MM_keepURL & NextItem & Server.URLencode(Request.QueryString(Item))
  End If
Next

' add the Form variables to the MM_keepForm string
For Each Item In Request.Form
  NextItem = "&" & Item & "="
  If (InStr(1,MM_removeList,NextItem,1) = 0) Then
    MM_keepForm = MM_keepForm & NextItem & Server.URLencode(Request.Form(Item))
  End If
Next

' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
if (MM_keepBoth <> "") Then MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
if (MM_keepURL <> "")  Then MM_keepURL  = Right(MM_keepURL, Len(MM_keepURL) - 1)
if (MM_keepForm <> "") Then MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)

' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
  If (firstItem <> "") Then
    MM_joinChar = "&"
  Else
    MM_joinChar = ""
  End If
End Function
%> <%
' *** Move To Record: set the strings for the first, last, next, and previous links

MM_keepMove = MM_keepBoth
MM_moveParam = "index"

' if the page has a repeated region, remove 'offset' from the maintained parameters
If (MM_size > 0) Then
  MM_moveParam = "offset"
  If (MM_keepMove <> "") Then
    params = Split(MM_keepMove, "&")
    MM_keepMove = ""
    For i = 0 To UBound(params)
      nextItem = Left(params(i), InStr(params(i),"=") - 1)
      If (StrComp(nextItem,MM_moveParam,1) <> 0) Then
        MM_keepMove = MM_keepMove & "&" & params(i)
      End If
    Next
    If (MM_keepMove <> "") Then
      MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
    End If
  End If
End If

' set the strings for the move to links
If (MM_keepMove <> "") Then MM_keepMove = MM_keepMove & "&"
urlStr = Request.ServerVariables("URL") & "?" & MM_keepMove & MM_moveParam & "="
MM_moveFirst = urlStr & "0"
MM_moveLast  = urlStr & "-1"
MM_moveNext  = urlStr & Cstr(MM_offset + MM_size)
prev = MM_offset - MM_size
If (prev < 0) Then prev = 0
MM_movePrev  = urlStr & Cstr(prev)
%>
<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>                   
function DoDateTime(str, nNamedFormat, nLCID)               
    dim strRet                               
    dim nOldLCID                               
                                       
    strRet = str                               
    If (nLCID > -1) Then                           
        oldLCID = Session.LCID                       
    End If                                   
                                       
    On Error Resume Next                           
                                       
    If (nLCID > -1) Then                           
        Session.LCID = nLCID                       
    End If                                   
                                       
    If ((nLCID < 0) Or (Session.LCID = nLCID)) Then               
        strRet = FormatDateTime(str, nNamedFormat)           
    End If                                   
                                       
    If (nLCID > -1) Then                           
        Session.LCID = oldLCID                       
    End If                                   
                                       
    DoDateTime = strRet                           
End Function                                   
</SCRIPT>
<html>
<head>
<title>My Guestbook</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<table width="99%">
  <tr>
    <td width="58%" height="17"> There are <%=(rsPost_total)%>
      enteries </td>
    <td>
      <div align="right"><% If MM_offset <> 0 Then %><A HREF="<%=MM_moveFirst%>">Previous</A><% End If ' end MM_offset <> 0 %>
        | <% If Not MM_atTotal Then %><A HREF="<%=MM_moveLast%>">Next</A><% End If ' end Not MM_atTotal %></div>
    </td>
  </tr>
</table>
<br>
<%
While ((Repeat1__numRows <> 0) AND (NOT rsPost.EOF))
%>
<table width="99%" height="99">
  <tr>
    <td width="46%">Posted by <%=(rsPost.Fields.Item("name").Value)%></td>
    <td width="54%">
      <div align="right"><%= DoDateTime((rsPost.Fields.Item("date").Value), 1, 1033) %></div>
    </td>
  </tr>
  <tr>
    <td colspan="2"><%=(rsPost.Fields.Item("comment").Value)%></td>
  </tr>
  <tr>
    <td height="24" width="46%">
      <div align="left">From <%=(rsPost.Fields.Item("location").Value)%></div>
    </td>
    <td height="24" width="54%">
      <div align="right"><% If Not rsPost.EOF Or Not rsPost.BOF Then %><a href="<%=(rsPost.Fields.Item("link").Value)%>">Home
        Page</a><% End If ' end Not rsPost.EOF Or NOT rsPost.BOF %></div>
    </td>
  </tr>
  <tr>
    <td height="2" colspan="2">&nbsp;</td>
  </tr>
</table>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
rsPost.MoveNext()
Wend
%>
</body>
</html>



Det er også en admindel men den virker fint
Avatar billede Meggel Novice
25. april 2004 - 16:20 #5
ja oki.. kan jeg ikke lige overskue.. jeg havde godt nok selv ville lave det på en lidt anden måde.
Avatar billede th1 Nybegynder
25. april 2004 - 16:26 #6
ok kan du så komme med et forslag?
Avatar billede eagleeye Praktikant
25. april 2004 - 16:26 #7
Du skulle gerne få en bedre fejl kode/beskrivelse ved at slå denne fra i IE:

funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"
Avatar billede th1 Nybegynder
25. april 2004 - 16:29 #8
det gjorde da    det kom denne her fejl:


Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

/gb_func.asp, line 292
Avatar billede Meggel Novice
25. april 2004 - 16:30 #9
du skal gi din database skrive rettigheder.. så skulle den være hjemme..
Avatar billede Meggel Novice
25. april 2004 - 16:31 #10
den mappe din database ligger kan du fx gøre det ved.. hvis din database ligger for sig selv i en mappe. og ikke sammen med asp filer.. ellers kan man gøre det kun på filen
Avatar billede eagleeye Praktikant
25. april 2004 - 16:31 #11
Avatar billede th1 Nybegynder
25. april 2004 - 16:36 #12
Jeg bruger windows server 2003  databasen ligger sammen med asp filerne  jeg har lige givet skriveretighed  men der kommer stadig den fejl
Avatar billede th1 Nybegynder
25. april 2004 - 16:42 #13
er der nogen der har nogen løsning på det
Avatar billede eagleeye Praktikant
25. april 2004 - 16:43 #14
Jeg kender ikke windows server 2003 men hvis det er som i XP  så prøv:

Åbn denne computer
Klik på menupunktet Funktioner
Mappeindstillinger
Klik på fanen Vis
Fjern flueben i "Brug Enkel Fildelign" så får du adgang til en fane der hedder sikkerhed.

Højreklik på mappen hvor databasen ligger
Vælg egenskaber
Klik på fanen sikkerhed giv her IUSR_xx skriverettigheder.
Avatar billede thesurfer Nybegynder
25. april 2004 - 16:43 #15
Kommer der samme fejl, efter at du har fulgt instruktionerne på http://activedeveloper.dk/artikler/default.asp?articleid=58 ?
Avatar billede th1 Nybegynder
25. april 2004 - 16:48 #16
ja det gør der thesurfer :(
Avatar billede th1 Nybegynder
25. april 2004 - 16:51 #17
det har jeg gjort -- eagleeye  men ellers tak
Avatar billede th1 Nybegynder
25. april 2004 - 16:59 #18
det virker nu...  hvorfor det ved jeg ikke lige..  jeg vil helst have svar fra alle  så jeg kan give jer point
Avatar billede eagleeye Praktikant
25. april 2004 - 17:12 #19
ok :)
Avatar billede Slettet bruger
25. april 2004 - 17:57 #20
Hvad pokker er den af "th1" er du begyndt at gi' point????
http://www.eksperten.dk/spm/487911
Avatar billede Meggel Novice
25. april 2004 - 17:59 #21
ok
Avatar billede th1 Nybegynder
25. april 2004 - 19:17 #22
helgec det må du undskylde at jeg gjorde.. men hvis du vil have din point så kontakt mig på min mail: noen@bluemail.dk
Avatar billede Slettet bruger
25. april 2004 - 20:11 #23
"men hvis du vil have din point " Jamen det er jo li'som det der er ide'en med xperten, jeg lever såmænd sagtens uden de point men det ville klæ' dig at afregne og det gøres ikke ved kontakt via e-mail
Se iøvrigt http://www.ebruger.dk/faq/#behandling_af_svar
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