Avatar billede bastardo Nybegynder
12. juni 2004 - 04:14 Der er 4 kommentarer og
1 løsning

! Min ASP-gæstebog laver fejl efter et vist antal beskeder !

Hej!

Jeg har en gæstebog som er lavet i .ASP.
Når der bliver tilføjet et vist antal beskeder laver den fejl i "Navnefeltet" (der hvor man skriver sit navn inden man skriver en besked) se her: http://www.christaogmads.dk/tagwall/canbeskeder.asp

Gæstebogen består af 3 filer.
1) - beskeder2004.txt
2) - canbeskeder.asp
3) - tagwall.asp

De 3 filers kode er pastet ind herunder:
===========================================================
===========================================================

1) indhold af beskeder.txt:
---------------------------

¨ßB¨ßBster9876543210Skriv din besked her98765432104/22/2004 7:54:24 PM

¨ßB¨ßBster9876543210Skriv din besked her98765432104/22/2004 7:52:41 PM

¨ßB¨ßB Kenneth9876543210Hej Christa og Mads<br/><br/>Hvis JEG nogensinde skulle giftes, skulle det foregå i noget af den samme stil som hos Jer...... Virkelig godt planlagt, skøn mad, musik og dejlige lokaler. Det var en uforglemmelig dag og nat, og den måde, I viser Jeres glæde for hinanden på, kan kun gøre én i godt humør.<br/><br/>Mange tak for det og al mulig lykke med Jeres fremtidige liv som mand og kone.<br/><br/>Fra Carin & Kenneth<br/><br/>98765432104/19/2004 12:01:19 PM

¨ßB¨ßB Louise9876543210Kære Christa og Madsda :-)<br/>Et perfekt brudepar, et perfekt arrangement. Vi håber I havde en uforglemmelig dag/aften/nat/morgen. <br/>Kærlig hilsen fra Klaus og Louise98765432104/16/2004 8:17:20 AM

@àË€/ Louise9876543210Kære Christa og Madsda :-) <br/><br/>98765432104/16/2004 8:15:16 AM

¨ßB¨ßB ¤¤¤9876543210Der er opstået et problem med gæstebogen, så skriv venligst under med navn sidst i meddelelsen...<br/>¤¤¤ HANS ¤¤¤98765432104/14/2004 2:57:26 AM

¨ßB¨ßBle9876543210Kære Christa og Mads<br/>Tusind tak for en rigtig dejlig dag. Alt var bare perfekt, lige fra maden til stemningen, det er skønt at se hvor glade i er for hinanden, i ønskes endnu engang tilykke, og mange gode ønsker for fremtiden.<br/>Stort knus fra aase og ole98765432104/14/2004 2:54:52 AM

X0hÐЕ & Jesper9876543210Et helt igennem overdådigt arrangement, med alt hvad hjertet kunne begærer!! Knus og tanker, Pernille & Jesper98765432104/14/2004 2:54:05 AM

Sarah & Henrik9876543210Hej Christa og Mads<br/>Tusind tak for en supergod fest og endnu en gang tillykke!<br/>Vi glemte at sørge for panodiler og isvand til jeres natbord - men vi fik da levet op til vores forpligtelse til at sørge for, at festen først sluttede, når det var blevet lyst udenfor :-)98765432104/14/2004 2:53:34 AM

Mama9876543210Det var bare sådan en god fest,tak for den. Endnu en gang tillykke98765432104/14/2004 2:53:11 AM

Christina & Hans9876543210Hej Christa & Mads,<br/>1000-tak for en fantastisk dag og aften! Dejligt med alle de fine indslag og taler, og ikke mindst musikken... Maden smagte super lækkert og drikkevarene ligeså.<br/>Tak for det og held og lykke i fremtiden.<br/>Kærligst - og med tømmermænd - C & H98765432104/14/2004 2:52:51 AM

Christa & Mads9876543210Velkommen, Vi glæder os til at læse hvad I skriver :P98765432104/10/2004 9:08:42 P

===========================================================
===========================================================

2) Indhold af canbeskeder.asp:
------------------------------

<%
' ################### Start: Hvis tag er sendt , bliver det tilføjet ##################
if (Request.ServerVariables("REQUEST_METHOD") = "POST" and Request.Form("navn") <> "                          Skriv dit navn her" and Request.Form("tag") <> "Skriv dit tag her") then
' ####################### replace funktioner, til at undgå fejl #######################
Function DBFix(tempString)
  tempString = Replace(Trim(tempString),vbcrlf,"<br/>")
  tempString = Replace(Trim(tempString),"9876543210","'ikke tilladt'")
  ' her kan du sætte flere replace funktioner ind, f.eks. smileys
  DBFix = tempString
End Function

Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("beskeder2004.txt")

' ################## tjekker det totale antal af linier i tekstfilen ##################
Set f = fso.OpenTextFile(filespec,1,true)
total=0
Do While not f.AtEndOfStream
total=total+1
f.SkipLine
Loop
f.Close

' ###### Smider både gamle og nye linier ned i en variabel , der bliver tilføjet ######
Set i = fso.OpenTextFile(filespec,1,true)
data = DBFix(Request.Form("navn")) & "9876543210" & DBFix(Request.Form("tag")) & "9876543210" & now & vbcrlf

do while not i.AtEndOfStream
  total=total-1
  If total > 0 Then
  data = data & i.ReadLine & vbCrLf
  Else
  data = data & i.ReadLine
  End If
Loop
i.Close

Set l = fso.OpenTextFile(filespec,2,true)
l.WriteLine data
l.Close

response.Redirect("canbeskeder.asp")
end if
' ################### Slutt: Hvis tag er sendt , bliver det tilføjet ###################

Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("beskeder2004.txt")

' ################## tjekker lige om der ikk er angivet et startsted ###################
startquery = request.querystring("start")
If startquery = "" then
startquery = "1"
end if



' ################# Spring linier over indtil værdien af querystringen #################
Set g = fso.OpenTextFile(filespec,1,true)
If Not startquery = "-1" Then
For intLine = 1 to startquery-1
  g.SkipLine
Next
End If
%>

<head>
<title>.: G&aelig;stebog :.</title>
<style type="text/css">
<!--
BODY         {
    font-family: Verdana,Arial,Sans-Serif;
    font-size:0.8em;
    text-align:center;
    font-style: normal;
    background-color:#666666;
    text-decoration: none;
    color: #FFFFFF;
    margin-top: 0px;
    margin-left: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
            }
#content    {
            width:700px;
            padding:0 0 0 0;
            border-top:1px solid #808080;
            border-bottom:1px solid #808080;
            background-color:#71828A;
            background-repeat : y-repeat;
            background-position : top;
            background-image:url(baggrund.gif);
            }
td            {
            font-family:Ariel;
            font-size:0.8em;
            color:##FFFFFF;
            }
.input1        {
            font-family:Ariel;
            font-size:0.8em;
            color:#;
            background-color:#666666;
            border-width:2px;
            border-style:solid;
            border-color: #cccccc #999999 #999999 #cccccc;
            width:100%;
            height:21px;
            }
.input2        {
            font-family:Ariel;
            font-size:0.9em;
            color:#000000;
            background-color:#FFFFFF;
            border-width:2px;
            border-style:solid;
            border-color: #cccccc #999999 #999999 #cccccc;
            width:100%;
            height:67px;
            }
.input3        {
            font-family:Ariel;
            font-size:0.8em;
            color:#FFFFFF;
            background-color:#666666;
            border-width:2px;
            border-style:solid;
            border-color: #cccccc #999999 #999999 #cccccc;
            width:100%;
            height:21px;
            }
a             {
            text-decoration:none; color:#FFFFFF;
            }
a:hover     {
            color:#FF6600; text-decoration:underline;
            }
.style4 {
    font-size: 16px;
    font-weight: bold;
    font-family: Verdana, Arial, Helvetica, sans-serif;
}
.style1 {font-size: 14px}
body,td,th {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    color: #F0F0F0;
}
a:link {
    color: #FFCC00;
}
a:visited {
    color: #FFCC00;
}
a:active {
    color: #FF6600;
}
.style6 {color: #FF6600}
-->
</style>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<body>

<table bgcolor="#71828A" width="700" border="0" align="center" cellspacing="0" cellpadding="1">
<tr>
  <td bgcolor="#666666"><table width="100%"  border="0">
    <tr>
      <td><div align="center">
        <p class="style1"><a href="../main.html" target="mainFrame">Forside</a> | <a href="../galleri.html" target="mainFrame">Galleri</a> | <a href="../video.html" target="mainFrame">Video</a> | <span class="style6 style6">G&aelig;stebog</span> | <a href="/musik&sjov.html" target="mainFrame">Musik &amp; Sjov</a> | <a href="../kontakt.html" target="mainFrame">Kontakt</a> | <a href="../links.html" target="mainFrame">Links</a></p>
        </div></td>
    </tr>
  </table>    </td>
</tr>
<tr>
  <td bgcolor="#71828A"><p>&nbsp;</p>    <table width="450"  border="0" align="center">
    <tr>
      <td><div align="center"><span class="style4">.: G&aelig;stebog :. </span></div></td>
    </tr>
    <tr>
      <td><div align="center">
          <p class="style1"> <br>
          Skriv en lille hilsen i vores sprit-nye g&aelig;stebog...</p>
          <p class="style1">&nbsp;</p>
      </div></td>
    </tr>
  </table></td>
</tr>
</table>
<div id="content">
  <%
' ############### Læs linie for linie indtil 95 linier er udskrevet ##############
p=0
Do While not (g.AtEndOfStream or p=95)
If Not startquery = "-1" Then
p=p+1
End If


' ############### Lav array ved at splitte ved tegnene 9876543210 ###############
arrM = Split(g.ReadLine,"9876543210")
 
If color="#FFFFFF" Then
  color="#FFFFFF"
Else
  color="#666666"
End If
%>
<table bgcolor="<%=color%>" width="500" border="0" align="center" cellspacing="0" cellpadding="1" style="border:1px solid #808080;">
  <tr>
    <td width="50%" style="border-right:1px dotted #808080;">&nbsp;Skrevet af: <b><%=arrM(0)%></b></td>
    <td width="50%" align="right"><%=arrM(2)%>&nbsp;</td>
  </tr>
  <tr>
      <td height="50" colspan="2" valign="top" style="border-top:1px dotted #808080;"><%=arrM(1)%></td>
  </tr>
</table>

<br>
<%
Loop

' #################### så laver vi videre og tilbage knapper ###############
If Not startquery<5 then response.write "<a href=""canbeskeder.asp?start=" & startquery - 5 & """>&lt;&lt;</a>"
%>&nbsp;&nbsp;&nbsp;&nbsp;<a href="canbeskeder.asp?start=-1">Se alle beskeder</a>&nbsp;&nbsp;&nbsp;&nbsp;<%
If Not g.AtEndOfStream then response.write "<a href=""canbeskeder.asp?start=" & startquery + 5 & """>&gt;&gt; </a>"
%>
<br>
<table width="500" border="0" align="center" cellspacing="0" cellpadding="0">
<form name="form1" method="post" action="canbeskeder.asp">
  <tr>
    <td width="50%"><center><input type="text" name="navn" size="15" value="                          Skriv dit navn her" onFocus="if (this.value == '                          Skriv dit navn her') this.value = '';" onBlur="if (this.value == '') this.value = '                          Skriv dit navn her';" class="input1"></td>
    <td width="50%" rowspan="3"><textarea rows="4" cols="17" name="tag" class="input2" onFocus="if (this.value == 'Skriv din besked her') this.value = '';" onBlur="if (this.value == '') this.value = 'Skriv dit tag her';">Skriv din besked her</textarea></td>
  </tr>
  <tr>
    <td width="50%"><input type="submit" name="ok" value="Tilf&oslash;j besked" class="input3"></td>
  </tr>
  <tr>
    <td width="50%"><input type="reset" name="navn" value="Fortryd" class="input3"></td>
  </tr>
</form>
</table>
<p>
    <%
Set f = fso.OpenTextFile(filespec,1,true)
total=0
Do While not f.AtEndOfStream
total=total+1
f.SkipLine
Loop
f.Close
%>
    <b>Christa & Mads</b> &#149;&#149; Der er i alt <b><%=total%></b> beskeder i vores gæstebog forum <br>
    <br>
    <A HREF="../main.html" target="mainFrame">Tilbage til forsiden...</a>
</p>
<p>&nbsp;</p>
</div>
</body>
</html>
<%
g.close
%>

===========================================================
===========================================================

3) Indhold af tagwall.asp:
--------------------------

<%
' ################### Start: Hvis tag er sendt , bliver det tilføjet ##################
if (Request.ServerVariables("REQUEST_METHOD") = "POST" and Request.Form("navn") <> "                          Skriv dit navn her" and Request.Form("tag") <> "Skriv dit tag her") then
' ####################### replace funktioner, til at undgå fejl #######################
Function DBFix(tempString)
  tempString = Replace(Trim(tempString),vbcrlf,"<br/>")
  tempString = Replace(Trim(tempString),"9876543210","'ikke tilladt'")
  ' her kan du sætte flere replace funktioner ind, f.eks. smileys
  DBFix = tempString
End Function

Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("beskeder2004.txt")

' ################## tjekker det totale antal af linier i tekstfilen ##################
Set f = fso.OpenTextFile(filespec,1,true)
total=0
Do While not f.AtEndOfStream
total=total+1
f.SkipLine
Loop
f.Close

' ###### Smider både gamle og nye linier ned i en variabel , der bliver tilføjet ######
Set i = fso.OpenTextFile(filespec,1,true)
data = DBFix(Request.Form("navn")) & "9876543210" & DBFix(Request.Form("tag")) & "9876543210" & now & vbcrlf

do while not i.AtEndOfStream
  total=total-1
  If total > 0 Then
  data = data & i.ReadLine & vbCrLf
  Else
  data = data & i.ReadLine
  End If
Loop
i.Close

Set l = fso.OpenTextFile(filespec,2,true)
l.WriteLine data
l.Close

response.Redirect("tagwall.asp")
end if
' ################### Slutt: Hvis tag er sendt , bliver det tilføjet ###################

Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("beskeder2004.txt")

' ################## tjekker lige om der ikk er angivet et startsted ###################
startquery = request.querystring("start")
If startquery = "" then
startquery = "1"
end if



' ################# Spring linier over indtil værdien af querystringen #################
Set g = fso.OpenTextFile(filespec,1,true)
If Not startquery = "-1" Then
For intLine = 1 to startquery-1
  g.SkipLine
Next
End If
%>

<head>
<title>Mine beskeder</title>
<style type="text/css">
<!--
body        {
            background-color:#999999;
            text-align:center;
            font-family:Ariel;
            font-size:0.8em;
            color:#666666;
            }
#content    {
            width:700px;
            padding:10 5 5 5;
            border-top:1px solid #808080;
            border-bottom:1px solid #808080;
            background-color:#CCCCCC;
            background-repeat : y-repeat;
            background-position : top;
            background-image:url(baggrund.gif);
            }
td            {
            font-family:Ariel;
            font-size:0.8em;
            color:#FFFFFF;
            }
.input1        {
            font-family:Ariel;
            font-size:0.8em;
            color:#FFFFFF;
            background-color:#336699;
            border-width:2px;
            border-style:solid;
            border-color: #cccccc #999999 #999999 #cccccc;
            width:100%;
            height:21px;
            }
.input2        {
            font-family:Ariel;
            font-size:0.9em;
            color:#FFFFFF;
            background-color:#996600;
            border-width:2px;
            border-style:solid;
            border-color: #cccccc #999999 #999999 #cccccc;
            width:100%;
            height:67px;
            }
.input3        {
            font-family:Ariel;
            font-size:0.8em;
            color:#336699;
            background-color:#336600;
            border-width:2px;
            border-style:solid;
            border-color: #cccccc #999999 #999999 #cccccc;
            width:100%;
            height:21px;
            }
a             {
            text-decoration:underline; color:#FFFFFF;
            }
a:hover     {
            color:#000000; text-decoration:none;
            }
-->
</style>

</head>

<body>
<div id="content">
<%
' ############### Læs linie for linie indtil 95 linier er udskrevet ##############
p=0
Do While not (g.AtEndOfStream or p=95)
If Not startquery = "-1" Then
p=p+1
End If


' ############### Lav array ved at splitte ved tegnene 9876543210 ###############
arrM = Split(g.ReadLine,"9876543210")
 
If color="#996600" Then
  color="#336699"
Else
  color="#000000"
End If
%>
<table bgcolor="<%=color%>" width="500" border="0" align="center" cellspacing="0" cellpadding="1" style="border:1px solid #808080;">
  <tr>
    <td width="50%" style="border-right:1px dotted #808080;">&nbsp;Skrevet af: <b><%=arrM(0)%></b></td>
    <td width="50%" align="right"><%=arrM(2)%>&nbsp;</td>
  </tr>
  <tr>
      <td height="50" colspan="2" valign="top" style="border-top:1px dotted #808080;"><%=arrM(1)%></td>
  </tr>
</table>
<br>
<%
Loop

' #################### så laver vi videre og tilbage knapper ###############
If Not startquery<5 then response.write "<a href=""tagwall.asp?start=" & startquery - 5 & """>&lt;&lt;</a>"
%>&nbsp;&nbsp;&nbsp;&nbsp;<a href="tagwall.asp?start=-1">Alle tags</a>&nbsp;&nbsp;&nbsp;&nbsp;<%
If Not g.AtEndOfStream then response.write "<a href=""tagwall.asp?start=" & startquery + 5 & """>&gt;&gt; </a>"
%>
<table width="500" border="0" align="center" cellspacing="0" cellpadding="0">
<form name="form1" method="post" action="tagwall.asp">
  <tr>
    <td width="50%"><center><input type="text" name="navn" size="15" value="                          Skriv dit navn her" onFocus="if (this.value == '                          Skriv dit navn her') this.value = '';" onBlur="if (this.value == '') this.value = '                          Skriv dit navn her';" class="input1"></td>
    <td width="50%" rowspan="3"><textarea rows="4" cols="17" name="tag" class="input2" onFocus="if (this.value == 'Skriv dit tag her') this.value = '';" onBlur="if (this.value == '') this.value = 'Skriv dit tag her';">Skriv dit tag her</textarea></td>
  </tr>
  <tr>
    <td width="50%"><input type="submit" name="ok" value="tilf&oslash;j tag!" class="input3"></td>
  </tr>
  <tr>
    <td width="15%"><input type="reset" name="navn" value="reset" class="input3"></td>
  </tr>
</form>
</table>
<%
Set f = fso.OpenTextFile(filespec,1,true)
total=0
Do While not f.AtEndOfStream
total=total+1
f.SkipLine
Loop
f.Close
%>
<b>Carl A Nielsen</b> &#149;&#149; Der er i alt <b><%=total%></b> beskeder i mit forum
</div>
</body>
</html>
<%
g.close
%>

===========================================================
===========================================================

Er der mon nogen af Jer eksperter der kan gennemskue denne "rodebutik" af kode, og sige mig hvad der er galt?
Eller måske komme med et forslag/idé til en mere simpel løsningsmodel?

Mvh- og god weekend,

Hans H. Hansen
Avatar billede bastardo Nybegynder
12. juni 2004 - 04:19 #1
Hej igen!

De 3 filer, til ovenstående problem, kan hentes som en zipfil på følgende link:

http://www.bastardo.dk/tagwall.zip

Mvh,

Hans H. Hansen
Avatar billede websam Nybegynder
12. juni 2004 - 19:30 #2
Hvorfor benytter du en .txt fil til at gemme i, istedet for en database det vil spare dig for mange problemer :o)

En anden og også bedre mulighed er xml istedet for .txt fil

Men ellers er den fejl du får fordi der ikke er noget i dit array og sikkert i denne besked da den har 2 forskellige tal der skal splittes på :

X0hÐЕ & Jesper9876543210Et helt igennem overdådigt arrangement, med alt hvad hjertet kunne begærer!! Knus og tanker, Pernille & Jesper98765432104/14/2004 2:54:05 AM

I din split angiver du at der skal splittes ved 9876543210 og da beskeden ovenfor tal ovenfor tar datoen med bliver det forkert :o)

/Websam
Avatar billede bastardo Nybegynder
14. juni 2004 - 12:53 #3
Jeg er faktisk ikke så fiks til det der med databaser - gæstebogen var een som jeg fik af en kammerat, som sagde at den var meget simpel og derfor lige til at gå til...!
Aner heller ik noget om xml :-(

Måske skulle jeg prøve en helt ande slags gæstebog... Måske i PHP..?

Hva vil du råde mig til ?

Mvh, og tak for svar,

Hans
Avatar billede websam Nybegynder
14. juni 2004 - 15:51 #4
Jeg vil da anbefale en gæstebog der køre på en database hvis ikke du har ret meget kendskab til programmering er det for stor en mundfuld med xml.

Her følger et link til en side hvor du gratis kan hente flere eksempler af en gæstebog :

http://activedeveloper.dk/search/default.asp?area=3&size=50&page=1&SearchType=0&keyword=g%E6stebog

/Websam
Avatar billede bastardo Nybegynder
16. juni 2004 - 21:46 #5
Tak! Det prøver jeg...

Go' dag, og tak for hjælpen.

Mvh,

Hans
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

Seneste spørgsmål Seneste aktivitet
34 min siden Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging