Avatar billede stanz2002 Nybegynder
12. april 2003 - 16:10 Der er 17 kommentarer og
2 løsninger

Indsæt data i database !

Hvorfor giver denne kode en 'HTTP 500 fejl' når man trykker på submit..

-------------------------------------

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/ConnNyhed.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Request.QueryString
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "form1") Then

  MM_editConnection = MM_ConnNyhed_STRING
  MM_editTable = "nyheder"
  MM_editRedirectUrl = "../index.asp"
  MM_fieldsStr  = "nyhed_tekst|value"
  MM_columnsStr = "nyhed_tekst|',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
 
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
  End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="post" action="<%=MM_editAction%>" name="form1">
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="right">Nyhed_tekst:</td>
      <td> <input type="text" name="nyhed_tekst" value="" size="32"> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td> <input type="submit" value="Insert Record"> </td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1">
</form>
<p>&nbsp;</p>
</body>
</html>
Avatar billede discowarp9 Nybegynder
12. april 2003 - 17:43 #1
Du mangler at definere din Querystring.
Du skal skrive Request.Querystring("xxx") i stedet for Request.Querystring, hvor xxx er navnet på din querystring.
Avatar billede stanz2002 Nybegynder
12. april 2003 - 19:42 #2
Jeg tror jeg har isoleret det til det følgende kode.. hvis jeg ekskludere det så køre det fint (undtagen at den så skriver noget til databasen)

-----------------

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close'

--------------------------

Hvad er der galt her...

Kan det være fordi jeg ikke har skriverettigheder til databasen.. bruger BuyDomains som webhotel..
Avatar billede discowarp9 Nybegynder
12. april 2003 - 19:47 #3
Hvad er det for en database-forbindelse du bruger?
Avatar billede stanz2002 Nybegynder
12. april 2003 - 19:58 #4
en DNS-less.. hvis det er det du tænker på... min connection fil er som følger :

------------

<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="true"
' Catalog=""
' Schema=""
Dim MM_ConnNyhed_STRING
MM_ConnNyhed_STRING = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" + Server.MapPath("/data/nyhed.mdb")
%>

--------------
Avatar billede discowarp9 Nybegynder
12. april 2003 - 20:02 #5
OK. Prøv at skifte dit plus ud med et &-tegn (Hvis din forbindelse virke andre steder skal du ikke, men ellers prøv), jeg er nemlig ikke sikker på at den kan sætte de to dele sammen.
Avatar billede stanz2002 Nybegynder
12. april 2003 - 20:04 #6
forbindelsen virker fint og jeg kan godt hente fra databasen.. så der skulle der ikke være problemer.. :-)
Avatar billede discowarp9 Nybegynder
12. april 2003 - 20:26 #7
Nu er jeg ikke helt hjemme i din måde at kalde til databasen, men http 500 er en intern server fejl, oftest som følge af et fejlslået database-kald.
Kunne der mangle noget i stil med "MM_editCmd.ActiveConnection.Open"?
Den måde jeg kalder til en database på skal man have 'åbnet' forbindelsen først.
Avatar billede stanz2002 Nybegynder
12. april 2003 - 20:32 #8
jah.. nu er al koden lavet af Dreamweaver.. da jeg ikke selv er en stor haj til ASP.. men jeg har selv tænkt på det at åbne database først.. men hvordan skal jeg tilføje det til ovenstående kode ??
Avatar billede stanz2002 Nybegynder
12. april 2003 - 21:27 #9
Har smidt 100 point mere i bøtten... der må da være nogen der kan hjælpe lidt :-)
Avatar billede discowarp9 Nybegynder
12. april 2003 - 21:40 #10
Hvad med:
-----------------

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.ActiveConnection.Open
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

--------------------------
Det er den måde der mest ligner min egen :-)
Avatar billede stanz2002 Nybegynder
12. april 2003 - 21:43 #11
virker heller ik.. har prøvet det :-)

Problemet opstår ligeså snart ' MM_editCmd.Execute ' er med i koden.. uden den kommer der ingen fejl.. men selvfølgelig bliver der ikke indsat noget i databasen..
Avatar billede discowarp9 Nybegynder
12. april 2003 - 21:51 #12
OK! Her kommer den grove løsning... Nu laver vi en anden forbindelse og et andet kald, men indholdet er det samme:
---------------------------------------------------------

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/data/nyhed.mdb")
Conn.Open DSN
Conn.Execute(MM_editQuery)
Conn.Close
Set Conn = Nothing

---------------------------------------------------------
Hvis ellers dine sql statements er sat rigtig op vil det virke.
Avatar billede stanz2002 Nybegynder
12. april 2003 - 22:23 #13
ok.. kigger lige på det i morgen.. krydser fingre og håber :-)
Avatar billede stanz2002 Nybegynder
13. april 2003 - 10:42 #14
hmm.. øv.. det giver desværre samme fejl..

Har også mailet med min udbyder og der skulle ikke være problemer med skriverettigheder i det bibliotek som databasen ligger i..

hvad f...... kan det så være ?? :-)
Avatar billede stanz2002 Nybegynder
13. april 2003 - 10:59 #15
Okay.. har lige prøvet nedenstående og det giver den samme fejl...

--------- test.asp -----------------

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="test_done.asp">
  <div align="center">
    <p>
      <textarea name="news_text"></textarea>
    </p>
    <p>
      <input type="submit" name="Submit" value="Submit">
    </p>
  </div>
</form>
</body>
</html>


------------ test_done.asp ---------------

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<p>
  <%
    ' Databaseforbindelse - husk at angive sti til din database
        Set Conn = Server.CreateObject("ADODB.Connection")
        DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
        DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/nyhed.mdb")
        Conn.Open DSN

    ' SQL sætning opbygges
        strSQL = "Insert into nyheder (nyhed_tekst) values('" & Request.Form("news_text") & "')"

    ' SQL sætning eksekveres
        Conn.Execute(strSQL)

    ' Luk databaseforbindelse
        Conn.Close
        Set Conn = Nothing
%>
</p>
<p>Teksten er indsat i DB'en !</p>
</body>
</html>

-----------------------------------

Jeg begynder at tro der måske er noget helt andet galt end selve koden.. men kan ik lige komme på hvad det kan være.. :-)
Avatar billede stanz2002 Nybegynder
13. april 2003 - 11:23 #16
Jeg har lige prøvet det på tre forskellige webhoteller og det giver samme fejl hver gang alle stederne.. I hvert fald med den kode som var udgangspunktet i spørgsmålet - den som Dreamweaver MX selv har lavet..
Avatar billede stanz2002 Nybegynder
13. april 2003 - 11:30 #17
Hvis der er en der gider at prøve nedenstående link og se om der kommer en 'HTTP 500 intern serverfejl' når man har indtastet lidt i formen og trykket submit... så vil det være dejligt..

http://www.stanz.dk/test/news.asp
Avatar billede stanz2002 Nybegynder
13. april 2003 - 12:05 #18
Juhuuuuuuuuuuuuuuuu... har fundet fejlen.. det var fordi der ikke var skriverettigheder på det bibliotek som databasen lå i.. selvom ham supporter fyren fra BuyDomains sagde at der var :-)

men du får lige lidt point for arbejdet.. takker mange gange :-)
Avatar billede stanz2002 Nybegynder
13. april 2003 - 12:05 #19
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