Tagwall/gæstebog i ASP

Tags:    asp
Skrevet af Bruger #2796 @ 18.02.2003
Jeg vil så vise hvordan man laver en simpel tagwall/gæstebog i ASP. Jeg bruger i denne artikel en Access database, og grunden til det er at, det er den database man normalt forbinder ASP med. Man kan sagtens bruge f.eks. MySQL som database i stedet for, men da jeg ikke er sikker på, at alle har installeret en "ASP->MySQL" bro, vil jeg bare bruge Access i denne artikel.


Hvordan gør man?



Når man skal lave et program eller som her en hjemmeside, skal man jo først finde ud af hvordan rammen for ens projekt skal være. Dvs. at jeg, da jeg lavede denne tagwall, først fandt ud af hvordan jeg ville lave de forskellige ting, og derefter kodede det.

Det resulterede i følgende:

1. der skal være en database.
2. der skal kunne indsættes noget i databasen
3. der skal kunne hentes noget fra databasen

De ovenstående punkter er sådan set, alt hvad der skal til, for at man kan lave denne tagwall. Derefter har jeg så fundet ud af hvordan databasen skal opbygges, og derefter har jeg så lavet koden til at indsætte og udtrække data med.
Koden som jeg leverer, skal sættes ind i den rækkefølge som brud-stykkerne kommer i.


Databasen



Først skal vi så lave vores database, og den skal kunne følgende:

1. indeholde et navn
2. indeholde en email
3. indeholde en besked
4. indeholde en dato

Og ud af det kommer følgende:

et ID-felt med autonummerering som er primær nøglen
et OVERSKRIFTs-felt som skal indeholde overskriften
et NAVNe-felt som skal indeholde personens navn
et EMAIL-felt som skal indeholde personens e-mail
et BESKED-felt, som skal indeholde den besked som personen skriver
et DATO-felt, som skal indeholde datoen hvor beskeden blev indsat



Grunden til at BESKED-feltet er af typen "notat", er fordi at denne type kan indeholde mere tekst end et almindeligt felt af typen "tekst".


ASP-koden



Det allerførste som der skal gøres på siden er, at en forbindelse til vores database. Det kommer til at se sådan her ud, hvis man kalder sin database tagwall.

Fold kodeboks ind/udKode 


Det som der sker er, at der forbindes til databasen. Dette regner jeg med at du kan i forvejen og jeg vil derfor ikke komme mere ind på det. Og hvis du ikke kan det, så skal du bare sige "ok" og acceptere at det er sådan det skal se ud.

Så skal vi lige have en lille finesse med på vores side. Dette er følgende:

Fold kodeboks ind/udKode 


Dette stykke kode gør, at hvis der f.eks. står:
http://www.udvikleren.dk/show_article.php?id=176

Så er det teksten efter spørgsmål tegnet der vurderes. I min kode, har jeg valgt "mode" i stedet for "id". Dette skal bruges når jeg skal vise tagwall/gæstebogen hvor jeg så bruger selve siden tagwall.asp og når jeg skal indætte en besked i den bruger jeg så tagwall.asp?mode=add

Sådan her vil vi fange og indsætte beskeden i vores database. Det kan godt se ud som en stor mundfuld, men der er kommentar i koden, så jeg håber du kan finde ud af det:

Fold kodeboks ind/udKode 


Jeg håber at kommentarene har hjulpet, og giver her en gennemgang af hvad der sker:

1. der tjekkes om noget er sendt fra form scriptet. if request.form("send") <> "" then
2. nogle variabler får værdien af felterne fra form scriptet. strNavn = trim(request.form("navn"))
3. der tjekkes om der står noget i de før lavede variabler, hvis ikke sættes strError lig med en fejl besked.
if len(strOverskrift) = 0 then
strError = "<li>Du har ikke skrevet noget i feltet Overskrift</li>"

4. hvis der ikke er nogen fejl, indsættes beskeden i databasen. if len(strError) = 0 then
4/5. ellers udskrives fejlen, og brugeren kan prøve igen
else
strError = "<center><p><ul><font color=red>"& strError &"</font></ul></p></center>
strMode = "add"


Ved at bruge request.from("bla") kan vi fange det, som bliver sendt til siden via form-scriptet.

Så skal der laves den form som skal sende beskeden til databasen. Dette er bare noget helt almindelig .HTML kode, og det kommer til at se sådan her ud:

Fold kodeboks ind/udKode 


Grunden til at linjen <% response.write strError %> er med, er for at vi kan se den fejl der forekommer, hvis noget er gået galt. (Der kunne også have stået <% =strError %>, det giver det samme resultat.) Oppe i "indsæt" koden, har vi jo sagt, at der hver gang der er en fejl, sættes en fejl-besked ind i strError.

Så mangler vi jo bare at lave den kode som skal vise os selve tagwall/gæstebogen. Den kommer så her, og igen bruges SELECT CASE sætningen. Denne gang bruges der bare "else"-delen af den. Dvs. at det er den del, som vises hvis mode ikke sættes lig noget. Dvs. at der står sådan her tagwall.asp

Fold kodeboks ind/udKode 


Det kan godt virke lidt forvirrende at kigge på koden, men det der sker er følgende:

1. en variabel sættes lig med en eksekvering af en SQL-sætning. set rs = conn.execute(strSQL)
2. en løkke køre databasen igennem 1 gang. dvs. at tag_id = 1
3. nogle variabler får værdien af felterne i databasen. strNavn = rs("navn")
4. variablerne udskrives. <% =strNavn %> samme som <% response.write strNavn %>
5. løkken "tælles op" ved hjælp af rs.movenext
... løkken er færdig med at løbe databasen igennem, og forbindelsen lukkes. conn.close

Dette var hvad der skete i den sidste del af koden. Jeg håber i kan bruge denne gennemgang til noget. Og god programmering... !

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (28)

User
Bruger #3654 @ 03.04.03 16:26
Hmm...?
Jeg forstod ikke helt så meget af den her artikel Jimmi...
Du propper for mange koder ind af gangen, og forklarer dem på en gang.. Derfor bliver til lidt svært at følge med, for dem, der ikke er så erfarne.
Hvis man til gengæld er god til ASP, men ikke lige ved hvordan man opretter en Tagwall, så er det en okay artikel..
Det ville også være bedre, hvis du til sidst lavede den komplette kode, så man lige kunne få et overblik over, hvordan det skulle se ud.
User
Bruger #3274 @ 18.04.03 22:46
Ja den er sikkert meget god... men jeg kunne ikke rigtig følge med i den! Men nu er jo også absolut nybegynder med det dér asp
User
Bruger #2796 @ 22.04.03 20:46
Til Thorkil Burup: Som jeg skrev i toppen af artiklen, skal du ligge koden ind, i den rækkefølge den er skrevet... (kodestykke efter kodestykke). Og du har nok ret i, at jeg skulle dele den noget mere op... Det må jeg lave, næste gang jeg laver en artikel. Tak for kommentaren
User
Bruger #4000 @ 28.05.03 12:19
SKOOD!!!! DER ER JO 10000000000000000 FEJL!!!!!!!!
User
Bruger #2796 @ 28.05.03 13:52
niks... kun 3...
1. der skal lige være en <% til at starte med...
2. omkring linje 20, skal være sådan: strEmail = trim(request.form("email";)) ' Personens e-mail
3. omkring linje 53, skal være sådan: strError = "<center><p><ul><font color=red>"& strError &"</font></ul></p></center>"

små fejl, men godt du så dem...
User
Bruger #1927 @ 03.08.03 15:16
Du skriver dette stykke kode to gange.

strMode = Request.QueryString("mode";)

I kodestykke 2 og starten af kodestykke 3.

Hilsen
Morten
User
Bruger #4251 @ 10.08.03 00:28
Nu har jeg længe prøvet at lave en guestbook uden held. Så denne gang prøver jeg at lave en i ASP. Men mit problem er at jeg ikke kan lave databasen for jeg har ikke MS Access. Kan jeg ikke for en til at sende mig databasen fra access til viper@danbonet.dk. Så ville jeg blive meget glad.
User
Bruger #4251 @ 10.08.03 11:19
skod det virker da af l... til.
User
Bruger #2796 @ 18.09.03 19:04
download den fulde kode her:
http://www.westsworld.dk/filer/download.php
User
Bruger #4534 @ 01.10.03 17:55
Jeg synes det er meget godt gennemgået, men jeg kan ikke finde ud af, hvilken tekststreng der skal indsættes i hvilken fil. Hvad skal der indsættes i tagwall.asp?
User
Bruger #2796 @ 05.10.03 21:10
tekststreng... hvad mener du?
kodestykker eller hvad? for de skal alle være i den fil.
User
Bruger #4702 @ 09.11.03 14:20
jeg sys det er en meget god guide men jeg kan bar ikk få den til at virke for når jeg har lavet det hele ved den og gå ud og vil prøve den går det hele meget godt indtil at jeg siger send for der siger den at siden kan ikke vises men ellers syntes jeg at det er gået meget godt men nu er det også første gang jeg prøver at lave det så !...
User
Bruger #2796 @ 26.11.03 16:52
Hvis du skriver problemet, så kan jeg måske hjælpe dig...
User
Bruger #4914 @ 16.12.03 11:37
For en nybegynder for mig fattede jeg mins af den artikel... det kunne være fedt hvis den kunne blive forenklet lidt... eller hvis du gad at skrive den færdige kode til sidst!
User
Bruger #2796 @ 27.12.03 20:12
Ville jeg gerne, men problemet ligger i, at jeg har skrevet denne artikel INDEN artikel systemet blev lavet om... Derfor kan jeg ikke redigere i denne artikel. Jeg har dog bragt problemet på banen i forummet, men der er ikke sket noget ved det...
User
Bruger #5839 @ 23.05.04 11:33
Ehhh...
Hvor er den side der viser alle beskederne?
User
Bruger #2796 @ 24.05.04 14:52
det sidste stykke kode...
User
Bruger #6209 @ 10.08.04 19:01
Hey

Efter min mening er det en god guide, men med en del små fejl. Måske sku du ha skrevet lidt om hvordan man lavede den database helt fra bunden, så nybegynder også ku være med.
Ka ikk lig husk det , men ellers ogs lig at det hele ska lig i to filer nemlig tagwall.mdb og tagwall.asp...

Den virker fint hos mig, nu ska jeg bar lig ha rettet lidt på designet, for det er sku ikk det kønneste at se på, hehe.
User
Bruger #6209 @ 10.08.04 20:45
Hey

Efter min mening er det en god guide, men med en del små fejl. Måske sku du ha skrevet lidt om hvordan man lavede den database helt fra bunden, så nybegynder også ku være med.
Ka ikk lig husk det , men ellers ogs lig at det hele ska lig i to filer nemlig tagwall.mdb og tagwall.asp...

Den virker fint hos mig, nu ska jeg bar lig ha rettet lidt på designet, for det er sku ikk det kønneste at se på, hehe.
User
Bruger #6209 @ 10.08.04 20:46
hva fanden der kom sku to sry...
User
Bruger #2796 @ 29.09.04 21:37
ja, det er også noget gammelt arbejde jeg havde lavet, som jeg lige ville ligge ind. Det reflekterede hvad jeg kunne lave i asp (for 4 år siden) og ville lige dele den med jer :) Men ja, jeg er ikke grafiker, så... :)
User
Bruger #6594 @ 06.10.04 18:35
Jimmy cant you right in english please ?
User
Bruger #7209 @ 26.06.05 10:32
Synes din artikel er dårlig..
Den har vel hendvendt sig til nybegyndere..
Også er det nok med bare at oprette forbindelse til DB'en og hente med rs("et eller andet")..
Nybygndere fatter ikke str, trim,, replace .. ;P Osv!

Bare forklar hvordan man add'er til DB, og henter fra den .. Det ville MANGE nye være glade for ..
User
Bruger #7946 @ 23.10.05 22:21
Jeg har et og sige: PHP ;D
User
Bruger #9927 @ 04.05.06 18:53
God artikel. ;)
Jeg lærte virkelig noget som jeg kan bruge.
User
Bruger #1927 @ 06.07.06 17:49
Man kan bruge andre programmer en MS Access for at redigere en Access DB. Søg på google! :D
User
Bruger #11003 @ 15.12.06 11:39
hejsa forstå ik noget af det der men vil lige spørg om der er en som kan hjælpe mig med at lave en tagwall?
User
Bruger #11003 @ 15.12.06 11:40
hejsa forstå ik noget af det der men vil lige spørg om der er en som kan hjælpe mig med at lave en tagwall? :D
Du skal være logget ind for at skrive en kommentar.
t