Lägg till länkar på din hemsida
Förord
Att ge sina besökare möjligheten att lägga till länkar till en länklista är ett trevlig sätt att göra hemsidan lite mer interaktiv. Jag tänkte visa här hur man kan göra ett sådant program.
Databasen
Databasen är en access databas och innehåller en tabell, links och fem fält, ID ,namn, url, beskrivning och Datum. Jag har valt att använda den direkta sök vägen till databas filen: DRIVER={MicrosoftAccessDriver(*.mdb)};"&"DBQ=C:\Inetpub\wwwroot\artikel\links.mdb" men man kan även använda: DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("links.mdb").
Filen Default.asp
Default.asp innehåller ingen program kod, utan det är den sida som ska visa dom 5 senaste länkarna och ge möjlighet att lägga till och ta bort länkar. Admin delen döljer du för dina besökare. Jag har infogat filen new_links.asp genom att använda <!-- #include file="new_links.asp" --> för att visa dom senaste länkarna.
Filen new_links.asp
Detta är den filen som visar dom 5 nyaste länkarna. För att plocka ut dom fem senaste inlagda länkarna ur databasen använder vi: SQLStmt = "SELECT TOP 5 * FROM links ORDER BY ID DESC"
När en besökare klickar på en av dom fem senaste länkarna vill vi att den öppnas i ett nytt fönster och det fixar vi med : <base target="_blank"> som placeras inom <head> taggen.
<%
'databasanslutning med recordset
SET Con = Server.CreateObject("ADODB.Connection")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=C:\Inetpub\wwwroot\artikel\links.mdb"
SQLStmt = "SELECT TOP 5 * FROM links ORDER BY ID DESC"
SET RecSET = Server.CreateObject("ADODB.Recordset")
RecSet.Open SQLStmt, Con, adOpenStatic, adLockOptimistic
'loopen för att skriva ut länkarna
while not RecSet.EOF
%>
"><%=RecSet("namn")%>
<%
RecSet.MoveNext
wend
RecSet.Close
Con.Close
%>
Filen add_link.asp
Det här är filen vi använder för att lägga till en ny länk, inga konstigheter utan bara ett formulär.
Filen add.asp
Vad add.asp gör är att kolla med in if sats: IF NOT Request.Form("namn") = "" AND NOT Request.Form("beskrivning") = "" AND NOT Request.Form("url") = "" THEN så alla fält i add_link.asp är ifyllda och om dom är det så uppdaterar vi databasen och blir omdirigerade till startsidan, annars så blir vi tillsagda att fylla i alla fält.
<%
'en if sats som kontrollerar att man fyllt i alla fälten
IF NOT Request.Form("namn") = "" AND NOT Request.Form("beskrivning") = "" AND NOT Request.Form("url") = "" THEN
'databasconnection med ett recordset för att kunna lägga in en länk
SET Con = Server.CreateObject("ADODB.Connection")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=C:\Inetpub\wwwroot\artikel\links.mdb"
SQLStmt = "SELECT * FROM links"
SET RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open SQLStmt, Con, adOpenStatic, adLockOptimistic
'kod för att kunna lägga till en post i databasen
RecSet.AddNew
RecSet("namn") = Request.Form("namn")
RecSet("url") = Request.Form("url")
RecSet("beskrivning") = Request.Form("beskrivning")
RecSet.Update
RecSet.Close
Con.Close
'redirectar tillbaka till start sidan.....
Response.Redirect "default.asp"
ELSE
'felmeddelande
%>
<%END IF%>
Filen links.asp
Och den här filen visar alla länkar som finns i databasen med datum när länken blev inlagd. Ungefär som filen new_links.asp med den skillnaden att här har vi en loop som går igenom hela databasen..
<%
'databasanslutning med recordset
SET Con = Server.CreateObject("ADODB.Connection")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=C:\Inetpub\wwwroot\artikel\links.mdb"
SQLStmt = "SELECT * FROM links ORDER BY ID DESC"
SET RecSET = Server.CreateObject("ADODB.Recordset")
RecSet.Open SQLStmt, Con, adOpenStatic, adLockOptimistic
'loopen för att skriva ut alla länkar........
DO UNTIL RecSet.EOF
%>
<%
RecSet.MoveNext
LOOP
RecSet.Close
Con.Close
%>
Nu över till Admin delen som består av två sidor som du gömmer för dina besökare eller lösenordsskyddar. Först så tittar vi på filen list_for_delete.asp som ska visa alla länkarna i databasen och låta oss ta bort dom vi vill..
Filen list_for_delete.asp
Inte några konstigheter här heller utan bara en anslutning till databasen och en loop som listar alla poster i densamma så vi ser alla länkar som finns i databasen på ett överskådligt sätt och kan ta bort dom vi inte vill ha kvar.
Radera länkar!
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=C:\Inetpub\wwwroot\artikel\links.mdb"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Radera = "SELECT * FROM links ORDER BY namn"
RecSet.Open Radera, Connect, adOpenStatic, adLockOptimistic %>
Följande länkar finns att radera.
<% Do Until RecSet.EOF %>
- <% =RecSet("namn") %> <% =RecSet("url") %>
<% =RecSet("beskrivning") %>
">Radera denna länk
<% RecSet.MoveNext
Loop
RecSet.Close %>
Filen tabort.asp
Här är filen som sköter raderingen av den länken som vi valde att ta bort på list_for_delete.asp
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=C:\Inetpub\wwwroot\artikel\links.mdb"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Radera = "SELECT * FROM links WHERE ID = " & Request.QueryString("delID") & " "
RecSet.Open Radera, Connect, adOpenStatic, adLockOptimistic
RecSet.Delete
RecSet.Close
Connect.Close %>
Tillbaka till Startsidan
Fil att tanka ner
Fil: add_links.zip
Var denna artikeln användbar?
Om du gör någon intressant (eller kanske något konstigt fel) på grund av detta material så skicka gärna det med ett mail eller bifoga en länk till mig så presenterar jag detta som ytterligare exempelfiler för kursen. Om detta innehållet är felaktigt eller du lärt dig fler finesser så skriv gärna en rad eller varför inte en egen kurs baserat på dina erfarenheter. Sänd gärna in dina tips till denna kurs./Tomas
0 Kommentarer