If Request.QueryString("mode") = "delete" Then 'Dim strSQL strSQL = "DELETE From ks where id=" & Request.QueryString("id") Response.Write "SQLDebug: [" & strSQL & "]<br>" & vbCrLf Conn.Execute strSQL End If
%> <table border="1" width="90%" cellpadding="0" cellspacing="0"> <tr> <td class="topbar" align="center" width="90%">Her kan du slette i Køb/Salg databasen</td> </tr> <% Set Query = Conn.Execute("SELECT * FROM ks ORDER BY dato DESC") If (Not Query.BOF) And (Not Query.EOF) Then Query.MoveFirst While Not Query.EOF %>
<tr> <td width="90%"><%=Query("dato")%> <%=Query("overskrift")%> (<%=Query("emne")%>) <a href="default.asp?emne=admin&emne2=mode=delete&id=<%=Query("id")%>" target="_self">slet</a> <hr size="1"> </td> </tr> <% Query.MoveNext Wend End If Query.Close Set Query = Nothing %> </table>
Hvad skriver siden ud ved linien "SQLDebug: [...]"?
Får du en fejlmeddelelse når du forsøger at slette?
Typisk er det fordi querystring-parameteren der flettes sammen med SQL-sætningen ikke er sat, eller at der er typeuoverensstemmelse mellem indholdet af querystring-parameteren og den værdi der sammenlignes med i databasen (i dit tilfælde kunne id f.eks. være et tal, men querystring("id") kunne f.eks. være tom - hvilket jo ikke er et lovligt tal :)).
If Request.QueryString("mode") = "delete" Then 'Dim strSQL strSQL = "DELETE From ks where id=" & Request.QueryString("id") Response.Write "SQLDebug: [" & strSQL & "]<br>" & vbCrLf Conn.Execute strSQL End If
%> <table border="1" width="90%" cellpadding="0" cellspacing="0"> <tr> <td class="topbar" align="center" width="90%">Her kan du slette i Køb/Salg databasen</td> </tr> <% Set Query = Conn.Execute("SELECT * FROM ks ORDER BY dato DESC") If (Not Query.BOF) And (Not Query.EOF) Then Query.MoveFirst While Not Query.EOF %>
<tr> <td width="90%"><%=Query("dato")%> <%=Query("overskrift")%> (<%=Query("emne")%>) <a href="default.asp?emne=admin&mode=delete&id=<%=Query("id")%>" target="_self">slet</a> <hr size="1"> </td> </tr> <% Query.MoveNext Wend End If Query.Close Set Query = Nothing %> </table>
softspot>> siden hedder sletks.asp som ligger i en mappe som hedder admin.
sletks.asp bliver hentet kaldt frem fra en index.asp som også ligger i mappen admin, det er kun administrator som kan bruge sletks.asp.
min index.asp ser således ud.
<!-- #include file="headerinfo.asp" --> <% if session("id") = "" then %> <!-- her kan du putte ting der skal vises, hvis man IKKE er logget ind --> <a href="login.asp">login</a> <% end if %>
<% if session("id") <> "" then %> <!-- her kan du putte ting der skal vises, hvis man ER logget ind --> <center> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="90%"> <tr> <td width="100%" class="topbar" align="center">Administrator siden</td> </tr> <tr> <td width="100%">Velkommen til administrator siden. På denne side kan du rette i dine oplysninger, uploade billeder til dit visitkort, tilføje guldkorn til hjemmesiden, oprette annonce til køb/salg.</td> </tr> <tr> <td width="100%" align="center"> <a href="admin/logout.asp">Log ud</a> | <a href="default.asp?emne=admin&emne2=retinfo">Rediger info</a> | <a href="default.asp?emne=admin&emne2=guldkorn">Tilføje Guldkorn</a>| <a href="default.asp?emne=admin&emne2=uppic">Upload billeder</a> | <a href="default.asp?emne=admin&emne2=upks">Køb/Salg </a>| <a href="default.asp?emne=admin&emne2=ide">Opret opskrift/ide </a>|
<% if session("status") = "admin" then %><br><br> <a href="default.asp?emne=admin&emne2=admin">admin-sektionen</a>|<a href="default.asp?emne=admin&emne2=tfk">tilføj kalender</a>|<a href="default.asp?emne=admin&emne2=updoc"> upload doc</a>| <% end if %><% end if %><a href="default.asp?emne=admin&emne2=sletks">Slet i køb/Salg</a></td> </tr> </table>
<br> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="90%"> <tr> <td width="100%"> <% if Trim(Request.QueryString("emne2")) = "retinfo" then %> <!--#include file="redigerinfo.asp" --> <%end if%> <% if Trim(Request.QueryString("emne2")) = "admin" then %> <!--#include file="admin.asp" --> <%end if%> <% if Trim(Request.QueryString("emne2")) = "guldkorn" then %> <!--#include file="upcitat.asp" --> <%end if%> <% if Trim(Request.QueryString("emne2")) = "uppic" then %> <!--#include file="uploadgfx.asp" --> <%end if%> <% if Trim(Request.QueryString("emne2")) = "tfk" then %> <!--#include file="upkal.asp" --> <%end if%> <% if Trim(Request.QueryString("emne2")) = "updoc" then %> <!--#include file="uploaddoc.asp" --> <%end if%> <% if Trim(Request.QueryString("emne2")) = "upks" then %> <!--#include file="ks.asp" --> <%end if%> <% if Trim(Request.QueryString("emne2")) = "ide" then %> <!--#include file="ide.asp" --> <%end if%> <% if Trim(Request.QueryString("emne2")) = "sletks" then %> <!--#include file="sletks.asp" --> <%end if%> </td> </tr> </table> <br> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="90%"> <tr> <td width="50%" valign="top"> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%"> <tr> <td width="100%"> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%"> <tr> <td width="100%" align="center" class="topbar">Opskrifter</td> </tr> <tr> <td width="100%" align="center"><MARQUEE onmouseover='this.stop();' onmouseout='this.start();' scrollamount='1' scrolldelay='75' top='0' left='0' width='100' height='70' direction="up"><!-- #include file="../visopskrift.asp"--></marquee></td> </tr>
eller sletks.asp (jeg kan ikke helt gennemskue din filstruktur, men du kan muligvis selv se det hvis linket til sletning er forkert - nu da du er gjort opmærksom på den mulige fejlkilde...)
1) Hvis man skal checke samme querystring flere gange, er det klart bedre at smide værdien i en variabel, fremfor at skulle arbejde hver eneste gang. Man siger jo heller ikke "(2 + 2) + ..." hver gang, men bare "4 + ..."
2) Select Case er bedre end en massse IF-sætninger.
Derfor:
dim q
q = Trim(Request.QueryString("emne2"))
select case q
case "retinfo" %> <!--#include file="redigerinfo.asp" --> <% case "admin" %> <!--#include file="admin.asp" --> <% ' osv
' Og til slut, hvis man selv har indtastet noget der ikke passer med de eksisterende filer:
case else %> <!--#include file="fejl.asp" --> <% end select %>
Man behøver naturligvis ikke at inkludere noget, hvis man selv har rettet i "emne2" i urlen.. man kunne også bare skrive en tekst, der fortæller brugen at siden ikke kunne findes..
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.