En fejl i aså gæstebog!..

Tags:    programmering

Hej med jer!!

Jeg har lavet den der gæstebog, man kan blive guidet til, på linket: http://www.udvikleren.dk/article.php?techid=7&aid=130 !

min gæstebog er her www.cortx.dk/tagwall/tagwall.asp <- MEN, det er en fejl på linje 3..

hele "tagwall.asp" ser sådan her ud:

<% set conn = server.createobject("ADODB.connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("tagwall.mdb")
conn.open DSN
%>
strMode = Request.QueryString("mode")
<html>
<head>
</head>

<body bgcolor="#E1E1E1">
<font face="Verdana, Arial, Helvetica, sans-serif">
<font size="1">
<% ' Bruges til at vise de forskellige sider, ved "add" vises form-tingen,
' ved "ingen ting" vises tagwall/gæstebogen
strMode = request.QueryString("mode")

if request.form("send") <> "" then
strError = ""

' Her "trimmes" de forskellige felter, dvs. blanke fjernes
' hvis de f.eks. står foran et navn: " jimmi"
strOverskrift = trim(request.form("overskrift")) ' Overskriften på beskeden
strNavn = trim(request.form("navn")) ' Navnet som personen har skrevet.
strEmail = trim(request.form("email")) ' Personens e-mail
strBesked = trim(request.form("besked")) ' Beskeden som personens har skrevet

' Her tjekkes der om brugeren har skrevet noget i felterne
' Og hvis der ikke er skrevet noget, skrives fejlen til strError variablen
if len(strOverskrift) = 0 then
strError = "<li>Du har ikke skrevet noget i feltet Overskrift</li>"
elseif len(strNavn) = 0 then
strError = "<li>Du har ikke skrevet noget i feltet navn</li>"
elseif len(strEmail) = 0 then ' kun hvis en email kræves, ellers fjen den
strError = "<li>Du har ikke skrevet noget i feltet e-mail</li>"
elseif len(strBesked) = 0 then
strError = "<li>Du har ikke skrevet noget i feltet besked</li>"
end if

' Hvis længden af strError er nul, dvs. hvis der ikke er nogen fejl
' skal det indsættes i databasen
if len(strError) = 0 then
strNavn = Server.HTMLEncode(strNavn) ' Så der ikke kan skrives html-tags
strEmail = Server.HTMLEncode(strEmail) ' Så der ikke kan skrives html-tags
strBesked = Server.HTMLEncode(strBesked) ' Så der ikke kan skrives html-tags

' Her er sql-sætningen som indsætter beskeden i databasen
strSQL = "insert into tbl_tagwall(tag_overskrift,tag_navn,tag_email,tag_besked,tag_dato)"
strSQL = strSQL & " Values('"& strOverskrift &"','"& strNavn &"','"& strEmail &"','"& strBesked &"',Now())"

' Her eksekveres SQL-sætningen
conn.execute(strSQL)

' Her kastes vi tilbage til visningen af tagwall/gæstebog
response.redirect "tagwall.asp"

else
strError = "<center><p><ul>"& strError &"</ul></p></center>"
strMode = "add"
end if
end if
%>
<div align="left"><br>
<br>
<%' sætter SELECT CASE lig strMode, så der kan vælges sidens indhold, ved at
' bruge "add" til form scriptet. dvs. tagwall.asp?mode=add

select CASE strMode

' her laves en CASE som har værdien add.
CASE "add" ' Viser en form hvor man kan indtaste beskeden i.

%>
</div>
</font></font><table width=400>
<form action=tagwall.asp method=post>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<% response.write strError %>
</font></td></tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Overskrift:</font></td>
</tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<input type=tekst name=overskrift>
</font></td></tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Navn:</font></td>
</tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<input type=tekst name=navn>
</font></td></tr>
<tr>
<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">eMail:</font></td>
</tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<input type=tekst name=email>
</font></td></tr>
<tr>
<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Besked:</font></td>
</tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<textarea name=besked rows=5 cols=30></textarea>
</font></td></tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<input type=submit value=send name=send>
</font></td></tr>
</form>
</table>
<font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
<% CASE ELSE ' Denne case viser tagwallen, dette gøres som standard

' Her vælges alt fra tagwallen, og det sorteres med den nyeste besked først
strSQL = "SELECT * FROM tbl_tagwall ORDER BY tag_id DESC"

set rs = conn.execute(strSQL)

response.write "<table width=500 align=center>"

' link til at tilføje en besked
response.write "<tr><td><a href=tagwall.asp?mode=add>tilføj besked</a></td></tr>"

do while NOT rs.EOF ' Denne løkke køre indtil der ikke er flere beskeder i tagwall/gæstebogen
strOverskrift = rs("tag_overskrift") ' her hentes overskriften
strNavn = rs("tag_navn") ' her hentes navnet
strEmail = rs("tag_email") ' her hentes emailen
strBesked = rs("tag_besked") ' her hentes beskeden
strDato = rs("tag_dato") ' her hentes datoen
%>
</font><font face="Verdana, Arial, Helvetica, sans-serif"><tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<% =strOverskrift %>
</font></td>
</tr>
</font>
<tr>
<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
Skrevet af <a href="mailto:<% =strEmail %>">
<% =strNavn %>
</a> d.
<% =strDato %>
</font></td>
</tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<% =strBesked %>
</font></td></tr>
<font size="1"><font face="Verdana, Arial, Helvetica, sans-serif">
<%
rs.movenext ' her tages det næste element i databasen
loop ' "looper" while løkken

response.write "</table>"

END SELECT ' hele select casen sluttes her

conn.close ' database forbindelsen lukkes
set conn = nothing
%>
%>
</font></font>
</body>
</html>


Linje 3 ser sådan her ud:

conn.open DSN


Finder du fejlen så skriv hvad fejlen var, og så skriv hele scriptet her igen, så jeg kan bruge det!!
Med venlig hilsen
Rasmus Henriksen
http://cortx.dk



6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
<% set conn = server.createobject("ADODB.connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("tagwall.mdb")
DSN.Open
%>
strMode = Request.QueryString("mode")
<html>
<head>
</head>

<body bgcolor="#E1E1E1">
<font face="Verdana, Arial, Helvetica, sans-serif">
<font size="1">
<% ' Bruges til at vise de forskellige sider, ved "add" vises form-tingen,
' ved "ingen ting" vises tagwall/gæstebogen
strMode = request.QueryString("mode")

if request.form("send") <> "" then
strError = ""

' Her "trimmes" de forskellige felter, dvs. blanke fjernes
' hvis de f.eks. står foran et navn: " jimmi"
strOverskrift = trim(request.form("overskrift")) ' Overskriften på beskeden
strNavn = trim(request.form("navn")) ' Navnet som personen har skrevet.
strEmail = trim(request.form("email")) ' Personens e-mail
strBesked = trim(request.form("besked")) ' Beskeden som personens har skrevet

' Her tjekkes der om brugeren har skrevet noget i felterne
' Og hvis der ikke er skrevet noget, skrives fejlen til strError variablen
if len(strOverskrift) = 0 then
strError = "<li>Du har ikke skrevet noget i feltet Overskrift</li>"
elseif len(strNavn) = 0 then
strError = "<li>Du har ikke skrevet noget i feltet navn</li>"
elseif len(strEmail) = 0 then ' kun hvis en email kræves, ellers fjen den
strError = "<li>Du har ikke skrevet noget i feltet e-mail</li>"
elseif len(strBesked) = 0 then
strError = "<li>Du har ikke skrevet noget i feltet besked</li>"
end if

' Hvis længden af strError er nul, dvs. hvis der ikke er nogen fejl
' skal det indsættes i databasen
if len(strError) = 0 then
strNavn = Server.HTMLEncode(strNavn) ' Så der ikke kan skrives html-tags
strEmail = Server.HTMLEncode(strEmail) ' Så der ikke kan skrives html-tags
strBesked = Server.HTMLEncode(strBesked) ' Så der ikke kan skrives html-tags

' Her er sql-sætningen som indsætter beskeden i databasen
strSQL = "insert into tbl_tagwall(tag_overskrift,tag_navn,tag_email,tag_besked,tag_dato)"
strSQL = strSQL & " Values('"& strOverskrift &"','"& strNavn &"','"& strEmail &"','"& strBesked &"',Now())"

' Her eksekveres SQL-sætningen
conn.execute(strSQL)

' Her kastes vi tilbage til visningen af tagwall/gæstebog
response.redirect "tagwall.asp"

else
strError = "<center><p><ul>"& strError &"</ul></p></center>"
strMode = "add"
end if
end if
%>
<div align="left">

<%' sætter SELECT CASE lig strMode, så der kan vælges sidens indhold, ved at
' bruge "add" til form scriptet. dvs. tagwall.asp?mode=add

select CASE strMode

' her laves en CASE som har værdien add.
CASE "add" ' Viser en form hvor man kan indtaste beskeden i.

%>
</div>
</font></font><table width=400>
<form action=tagwall.asp method=post>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<% response.write strError %>
</font></td></tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Overskrift:</font></td>
</tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<input type=tekst name=overskrift>
</font></td></tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Navn:</font></td>
</tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<input type=tekst name=navn>
</font></td></tr>
<tr>
<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">eMail:</font></td>
</tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<input type=tekst name=email>
</font></td></tr>
<tr>
<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Besked:</font></td>
</tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<textarea name=besked rows=5 cols=30></textarea>
</font></td></tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<input type=submit value=send name=send>
</font></td></tr>
</form>
</table>
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<% CASE ELSE ' Denne case viser tagwallen, dette gøres som standard

' Her vælges alt fra tagwallen, og det sorteres med den nyeste besked først
strSQL = "SELECT * FROM tbl_tagwall ORDER BY tag_id DESC"

set rs = conn.execute(strSQL)

response.write "<table width=500 align=center>"

' link til at tilføje en besked
response.write "<tr><td><a href=tagwall.asp?mode=add>tilføj besked</a></td></tr>"

do while NOT rs.EOF ' Denne løkke køre indtil der ikke er flere beskeder i tagwall/gæstebogen
strOverskrift = rs("tag_overskrift") ' her hentes overskriften
strNavn = rs("tag_navn") ' her hentes navnet
strEmail = rs("tag_email") ' her hentes emailen
strBesked = rs("tag_besked") ' her hentes beskeden
strDato = rs("tag_dato") ' her hentes datoen
%>
</font><font face="Verdana, Arial, Helvetica, sans-serif"><tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<% =strOverskrift %>
</font></td>
</tr>
</font>
<tr>
<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
Skrevet af <a href="mailto:<% =strEmail %>">
<% =strNavn %>
</a> d.
<% =strDato %>
</font></td>
</tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<% =strBesked %>
</font></td></tr>
<font size="1"><font face="Verdana, Arial, Helvetica, sans-serif">
<%
rs.movenext ' her tages det næste element i databasen
loop ' "looper" while løkken

response.write "</table>"

END SELECT ' hele select casen sluttes her

conn.close ' database forbindelsen lukkes
set conn = nothing
%>
%>
</font></font>
</body>
</html>



AHHHAAAA!!!!

Jeg har lige læst på b-one.dk at de ikke understøtter mdb!! :D MEn mysql!!

Hvordan laver ejg den om til at kunne bruge mysql ??

Rasmus Henriksen // Cortx
http://cortx.dk


Sådan her kan du connecte til en MySQL database igennem ASP. Og der er ikke andet i ASP filen der skal ændre. ASP = database uafhængig...

Fold kodeboks ind/udKode 


håber du kan bruge det...
---------------------------
Hilsen Jimmi Westeberg



Hmm ja.. Men nu kom der en fejl mere!!

Kan du rette den? Ud fra dte du har lavet?? Og så skrive det hele igen??



AHHHAAAA!!!!

Jeg har lige læst på b-one.dk at de ikke understøtter mdb!! :D MEn mysql!!

Hvordan laver ejg den om til at kunne bruge mysql ??

Rasmus Henriksen // Cortx
http://cortx.dk



Kan du ikke skrive hele ssiden?? fatter hat af det der mysql!!! Og ander intet om hvad det du skrev før skal hen osv!!



Kan du ikke skrive hele ssiden?? fatter hat af det der mysql!!! Og ander intet om hvad det du skrev før skal hen osv!!


Det jeg skrev, var database forbindelsen. Det skal du erstatte med den databaseforbindelse du bruger i din gæstebog... (det der tilnærmelsesvis ligner det jeg har skrevet)

---------------------------
Hilsen Jimmi Westeberg



t