Avatar billede frank74 Nybegynder
07. februar 2007 - 16:31 Der er 8 kommentarer og
1 løsning

Problem med script.

Hejsa. Jeg har et script der viser de forskellige ting der er skrevet i min gæstebog. Det virker fint nok. I scriptet er der en checkbox og sætter man flueben i den og trykker på "Slet" skal meddelelsen slettes via et andet script.
Men gør jeg det får jeg følgende fejl :

Siden kan ikke vises
blablablabla
HTTP 500 - Intern serverfejl
Internet Explorer 

Mine 2 scripts ser sådan ud :

<%
If Not Session("UserID") <> "" THEN
Response.redirect "MEDDELLELSER/ikke_logget_ind.htm"
End If
If request.querystring("action") = "Disconnect" THEN
Session.abandon
Response.redirect "MEDDELLELSER/ikke_logget_ind.htm"
End If
%>
<html>
<head>
<title>Administrer Gæstebog</title>
<meta name="Generator" content="Stone's WebWriter 4">
<link rel="stylesheet" type="text/css" href="../STYLE/style.css">
</head>
<body background="../IMAGES/startile.gif">
<div style="text-align:center">
        <table border="0" cellpadding="0" cellspacing="0" width="600" height="10%" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td>
<br><br>
<form action="Administrer_gb_slet.asp" method="post">
<table width="100%" border="1">
<table width="100%" border="1">
    <tr align="center">
      <td><h1><strong>Slet</td></h1></strong>
      <td><h1><strong>Ret</td></h1></strong>
      <td><h1><strong>Dato</td></h1></strong>
      <td><h1><strong>Navn</td></h1></strong>
      <td><h1><strong>Tittel</td></h1></strong>
      <td><h1><strong>Indlæg</td></h1></strong>
      <td><h1><strong>IP</td></h1></strong>
    </tr>
<%
' 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("../DATABASER/gaestebog.mdb")
Conn.Open DSN

strSQL = "Select * From Bulletin Order By fldDate Desc"
Set rs = Conn.Execute(strSQL)
%>
<div style="text-align:center">
<font><i>
<%
SQL = "Select count(*) as antal From Bulletin"
Set rsCount = Conn.Execute(SQL)
response.write "Der er i alt " & rsCount("antal") & " indlæg i gæstebogen."
%>
</i></font>
</div>
<br>
<%
do while not rs.EOF
id = rs("UserID")
%>
<tr align="center">
      <td><input type="checkbox" name="check" value="<%=rs("UserID")%>"></td>
      <td><a href="ret_gb.asp?id=<%=id%>">Ret</a></td>
      <td><font><% Response.Write FormatDateTime(rs("fldDate"), vbLongDate) & "</dd>" %></font></td>
      <td><font><%=rs("fldName")%></font></td>
      <td><font><%=rs("fldTitle")%></font></td>
      <td><font><%=rs("fldBody")%></font></td>
      <td><font><%=rs("fldIP")%></font></td>
    </tr>
<%
  rs.MoveNext
loop

rs.close
Conn.Close
Set Conn = Nothing
%>
  </table>
<br>
<input type="submit" value="Slet valgte">
</form>
</td>
</tr>
</table>
</div>


</body>
</html>
---------------------------------------------------
<%
If Not Session("UserID") <> "" THEN
Response.redirect "MEDDELLELSER/ikke_logget_ind.htm"
End If

If request.querystring("action") = "Disconnect" THEN
Session.abandon
Response.redirect "MEDDELLELSER/ikke_logget_ind.htm"
End If
%>
<html>
<head>
    <title>Administrer Gæstebog - Slet</title>
<meta name="Generator" content="Stone's WebWriter 4">
</head>
<body>
<%
' Databaseforbindelse - husk at angive sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../DATABASER/gaestebog.mdb")
SQL = "DELETE FROM Bulletin WHERE id IN (" & request.form("check") & ")"
set cn = Server.CreateObject("ADODB.Connection")00000


cn.Open DSN
cn.Execute SQL
cn.Close
Set cn = Nothing

Response.Redirect "se_kalender_superadmin_arkiv.asp"

%>
</body>
</html><%
If Not Session("UserID") <> "" THEN
Response.redirect "MEDDELLELSER/ikke_logget_ind.htm"
End If

If request.querystring("action") = "Disconnect" THEN
Session.abandon
Response.redirect "MEDDELLELSER/ikke_logget_ind.htm"
End If
%>
<html>
<head>
    <title>Administrer Gæstebog - Slet</title>
<meta name="Generator" content="Stone's WebWriter 4">
</head>
<body>
<%
' Databaseforbindelse - husk at angive sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../DATABASER/gaestebog.mdb")
SQL = "DELETE FROM Bulletin WHERE id IN (" & request.form("check") & ")"
set cn = Server.CreateObject("ADODB.Connection")00000


cn.Open DSN
cn.Execute SQL
cn.Close
Set cn = Nothing

Response.Redirect "se_kalender_superadmin_arkiv.asp"

%>
</body>
</html>
---------------------------------------------------
Er der nogen der har et godt bud på hvad der er galt??
Avatar billede frank74 Nybegynder
07. februar 2007 - 16:34 #1
Ups... Copy/Paste fejl. Nederste script skal naturligvis kun være der 1 gang. Sådan :

<%
If Not Session("UserID") <> "" THEN
Response.redirect "MEDDELLELSER/ikke_logget_ind.htm"
End If

If request.querystring("action") = "Disconnect" THEN
Session.abandon
Response.redirect "MEDDELLELSER/ikke_logget_ind.htm"
End If
%>
<html>
<head>
    <title>Administrer Gæstebog - Slet</title>
<meta name="Generator" content="Stone's WebWriter 4">
</head>
<body>
<%
' Databaseforbindelse - husk at angive sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../DATABASER/gaestebog.mdb")
SQL = "DELETE FROM Bulletin WHERE id IN (" & request.form("check") & ")"
set cn = Server.CreateObject("ADODB.Connection")00000


cn.Open DSN
cn.Execute SQL
cn.Close
Set cn = Nothing

Response.Redirect "se_kalender_superadmin_arkiv.asp"

%>
</body>
</html>
Avatar billede keysersoze Guru
07. februar 2007 - 16:47 #2
funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"

så får du en fejlbesked du (og vi) kan bruge til noget.

men fejlen skyldes formentlig at din sql skal se sådan ud;

SQL = "DELETE * FROM Bulletin WHERE id = " & request.form("check") & ""

og så siger de der 5 nuller ved din Server.CreateObject mig heller ikke rigtig noget.
Avatar billede frank74 Nybegynder
08. februar 2007 - 10:25 #3
Jeg får denne fejl nu:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/ADMIN/Administrer_gb_slet.asp, line 26

Også selvom jeg fjerner de 5 nuller (Ved ikke lige hvor de kommer fra) og laver min SQL sætning om.
Avatar billede frank74 Nybegynder
08. februar 2007 - 14:34 #4
Måske dette kan hjælpe.
Hvis jeg sætter flueben i flere checkboxe får jeg følgende fejl :
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (comma) in query expression 'id = 802, 801'.
/ADMIN/Administrer_gb_slet.asp, line 26
Avatar billede keysersoze Guru
08. februar 2007 - 22:37 #5
hvis der kan være flere id'er skal din sql, som du havde fra starten og ikke som jeg ændrede det til, have IN i stedet for =

SQL = "DELETE * FROM Bulletin WHERE id IN (" & request.form("check") & ")"
Avatar billede frank74 Nybegynder
09. februar 2007 - 07:01 #6
Det har jeg nu ændret. Men selvom jeg sætter flueben i en eller flere checkboxe får jeg stadig denne fejl :

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/ADMIN/Administrer_gb_slet.asp, line 26
Avatar billede keysersoze Guru
11. februar 2007 - 12:56 #7
jeg er ikke helt sikker på om man i access kan bruge IN i en DELETE. Prøv at udskriv din SQL i stedet for at eksekvere den og lad os se hvad det giver af resultat.
Avatar billede olhansen Nybegynder
22. februar 2007 - 09:09 #8
Din tabel har ikke en kolonne med navnet ID. Så din sql skal nok være:
"delete FROM bulletin where userid in (" & request.form("check") & ")"

Mvh
Ove
Avatar billede frank74 Nybegynder
22. februar 2007 - 16:32 #9
Sådan skal det gøres. :-) Mange tak 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