1. Filen bokn_form_hjarter.asp listar en vald post från en Access db. Här ska man kunna skriva in eller redigera befintliga uppgifter i posten.
2. Ändringarna skickas vidare till update_hjarter.asp som uppdaterar databasen och redirectar till admin._hjarter.asp som listar hela databasen.
När jag ändrat uppgifterna i (1) bokn_form_hjarter.asp och trycker på knappen "Boka" får jag felmeddelandet: Sidan kan inte visas, HTTP 500 - Internt serverfel Internet Explorer. Inget är heller skrivet till db.
Vad gör jag för fel?
bokn_form_hjarter.asp
<%@Language=VBScript %>
<%option explicit%>
<%
sub DelID(ID)
InputBox ID
end sub
%>
<%
'Tar emot vecka från admin_hjarter.asp
Dim vecka
vecka = Request.QueryString("vecka")
%>
<%
Dim path
path = Server.MapPath("/db/boka.mdb")
Dim Conn
Set Conn=server.createobject("adodb.connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & path
Dim strSQL
strSQL = "SELECT vecka,namn,tel,mail,status FROM tab_hjarter WHERE vecka = " & vecka
Dim rs
Set rs = Conn.Execute(strSQL)
%>
<html>
<head>
</head>
<body>
<h1>Bokning Hjärter</h1>
<form method="POST" action="update_hjarter.asp">
<table border="0" cellspacing="0" width="100%">
<tr>
<td width="75%" colspan="3"><b>Vecka</b><br>
<input type="text" name="vecka" size="3" value="<% =rs("vecka") %>"><br>
</td>
<td width="25%">
<input type="submit" value="Boka" name="Change">
</td>
</tr>
<tr>
<td width="25%"><b>Namn</b>:<br>
<input type="text" name="namn" size="23" value="<%=rs("namn")%>">
</td>
<td width="25%"><b>Telefon</b>:<br>
<input type="text" name="tel" size="20" value="<%=rs("tel")%>">
</td>
<td width="25%"><b>E-post</b>:<br>
<input type="text" name="mail" size="23" value="<%=rs("mail")%>">
</td>
<td width="25%"><b>Status</b>:<br>
<input type="text" name="status" size="10" value="<%=rs("status")%>">
</td>
</tr>
</table>
</form>
<%
Conn.Close
Set Conn = Nothing
%>
</body>
</html>
update_hjarter.asp
<% Option Explicit %>
<%Response.Buffer = true%>
<%
sub DelID(ID)
InputBox ID
end sub
%>
<%
Dim vecka
Dim namn
Dim tel
Dim mail
Dim status
vecka = Request.Form("vecka")
namn = Request.Form("namn")
tel = Request.Form("tel")
mail = Request.Form("mail")
status = Request.Form("status")
Dim path
path = Server.MapPath("/db/boka.mdb")
Dim Conn
Set Conn=server.createobject("adodb.connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & path
dim strSQL
strSQL = "UPDATE tab_hjarter SET "&_
"vecka = '" & vecka & "', "&_
"namn = '" & namn & "', "&_
"tel = '" & tel & "', "&_
"mail = '" & mail & "', "&_
"status = '" & status & "', "&_
"WHERE vecka=" & Request.Form("vecka")
Dim rs
Set rs = Conn.Execute(strSQL)
Response.Redirect("admin_hjarter.asp")
%>
Sidan kan inte visas, HTTP 500 - Internt serverfel Internet Explorer.
Till att börja med, avmarkera "Egna http-felmeddelanden" (eller vad det nu heter) i inställningarna i IE, så du får ett riktigt felmeddelande. Posta sedan detta här.
Har man problem med SQL-frågor som inte gör vad de ska, skriv ut frågan med Response.write istället för att exekvera den, så är det lättare att felsöka.