Avatar billede cortx Nybegynder
28. maj 2003 - 08:08 Der er 7 kommentarer og
1 løsning

Rette en fejl i gæstebog

Hej eksperter!

Jeg ahr lavet en gæstebog efter en guide på www.udvikleren.dk !
www.cortx.dk/tagwall/teagwall.asp <- der er den.. JEg har rettet mange fejl, men den der kan jeg lige godt ikke finde!!

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>
<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">e-mail:</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>

Så må du gerne skrive hvad fejlen er, og så skrive det hele igen!! Hvis du sådan umidelbart kan finde flere fejl, så er du velkommen til at rette dem, samtidig.

venlig hilsen
Rasmus Henriksen
http://cortx.dk
Avatar billede cortx Nybegynder
28. maj 2003 - 08:09 #1
Der er en fejl i mit link til tagwallen!!!

www.cortx.dk/tagwall/tagwall.asp
Avatar billede cesil Nybegynder
28. maj 2003 - 08:46 #2
hvad står der i linie 3 i tagwall.asp
Avatar billede cortx Nybegynder
28. maj 2003 - 08:55 #3
conn.open DSN

men sådan fra linje 1 til 4 står der:
<% set conn = server.createobject("ADODB.connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("tagwall.mdb")
conn.open DSN
%>

Kan du også se i scriptet i mit spm.
Avatar billede eagleeye Praktikant
28. maj 2003 - 10:45 #4
Er du sikker på at database filen ligger i samme folder som ASP filen?
Det kunne måske tyde på den ikke kan finde DB filen som angivet.
Avatar billede tjol Nybegynder
28. maj 2003 - 10:59 #5
Prøv at finde ud af, hvad DSN indeholder inden du laver kaldet, fx.:
<%
set conn = server.createobject("ADODB.connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("tagwall.mdb")
response.write DSN & "<br>"
conn.open DSN
%>
det giver dig en mulighed for at kontrollere, at db'en ligger, hvor den skal og har det rigtige navn.
Avatar billede cortx Nybegynder
28. maj 2003 - 12:18 #6
Ja!! De ligger i samme mappe..

og hvordan finder jeg ud af hvad DSN indeholder??
Avatar billede cortx Nybegynder
28. maj 2003 - 12:41 #7
Jeg er ked af det.. Grunden til det, var at min udbyder, ikek kan tage mdb!! Skal have lavet det om til MySQL!!!
Avatar billede tjol Nybegynder
28. maj 2003 - 12:41 #8
ved at udskrive indholdet af variablen med response.write og så kommentere selve kaldet af conn.open ud:
<%
set conn = server.createobject("ADODB.connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("tagwall.mdb")
response.write DSN & "<br>"
' conn.open DSN
%>
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester