Avatar billede metal_hansen Nybegynder
02. november 2002 - 14:26 Der er 36 kommentarer og
1 løsning

Tilføje hjemmeside-link i gæstebog

Jeg har en gæstebog hvor man kan skrive sit navn og sin mail - men ikke en www.adresse.dk og det ku jeg godt tænke mig :)

Så hvis der er én der lige ved hvordan man kringer dén, så blir jeg glad.

Min guestbook.asp:

<%
Function addLinks(sInput, sTarget)
    Dim sNew, sPunct
   
    ' Define punctuation characters
    sPunct = "_-+=!?.,;:`~'""*^$%()[]{}<>|"
   
    ' Assign input string to local variable so we don't change the
    ' original string.
    sNew = sInput

    ' Split the string by whitespace: spaces, carriage returns, line feeds,
    ' and tabs.  Then, for each "word" in the string...
    For Each sVal1 in Split(sNew, " ")
    For Each sVal2 in Split(sVal1, vbcr)
    For Each sVal3 in Split(sVal2, vblf)
    For Each sVal4 in Split(sVal3, Chr(9))
        ' Remove beginning and ending punctuation
        bStop = FALSE
        Do While (Not bStop)
            If (Instr(sPunct, Left(sVal4, 1)) <> 0 And Len(sVal4) > 2) Then
                sVal4 = Mid(sVal4, 2)
            Else
                bStop = TRUE
            End If
        Loop
       
        bStop = FALSE
        Do While (Not bStop)
            If (Instr(sPunct, Right(sVal4, 1)) <> 0 And Len(sVal4) > 2) Then
                sVal4 = Left(sVal4, Len(sVal4) - 1)
            Else
                bStop = TRUE
            End If
        Loop

        ' If the word begins with http:// then convert all occurrences
        ' of this word to a hyperlink.
        If (LCase(Left(sVal4, 7) = "http://") Or LCase(Left(sVal4, 4) = "www.")) Then
            If (LCase(Left(sVal4, 4) = "www.")) Then
                If (sTarget = "") then
                    sNew = Replace(sNew, sVal4, "<A HREF='http://" & sVal4 & "'>" & sVal4 & "</A>")
                Else
                    sNew = Replace(sNew, sVal4, "<A HREF='http://" & sVal4 & "' TARGET=""" & sTarget & """>" & sVal4 & "</A>")
                End If
            Else
                If (sTarget = "") then
                    sNew = Replace(sNew, sVal4, "<A HREF='" & sVal4 & "'>" & sVal4 & "</A>")
                Else
                    sNew = Replace(sNew, sVal4, "<A HREF='" & sVal4 & "' TARGET=""" & sTarget & """>" & sVal4 & "</A>")
                End If
            End If
        End If
       
        ' If this word looks like an e-mail address then convert all
        ' occurrences into a mailto: link.
        If (Instr(sVal4, "@") >= 2 And Instr(sVal4, ".") <> 0 And Len(sVal4) >= 5) Then
            sNew = Replace(sNew, sVal4, "<A HREF=""mailto:" & sVal4 & """>" & sVal4 & "</A>")
        End If
    Next
    Next
    Next
    Next
   
    ' Return converted string
    addLinks = sNew
End Function

ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("guestbook.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString

sql = "SELECT * FROM guestbook ORDER BY datetime DESC"
Set rsEntries = Server.CreateObject("ADODB.Recordset")
rsEntries.Open sql, conn, 3, 3
%>

<html>
<head>
<title>..:: O : L : A : K ::..</title>


<SCRIPT src="../images/menu/js.js" type=text/javascript></SCRIPT>
    <LINK href="../images/menu/epictime_tagwall.css" type=text/css rel=stylesheet>
   
</head>
<body link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" id="body">

</body>
<br><br>
<div align="center"><table class="seksten">
<tr>
    <td></td>
    <td></td>
    <td><p><div align="center"><img src="../images/tagwall_sort.jpg" alt="" width="79" height="12" border="0"><br><br><a onmouseover="window.status='Tilføj en besked'; return true"onMouseOut="window.status=''" href="tilfoj.asp">Tilføj besked</a></div></p>
<hr class="borderstagwall">



<a name="messagetop"></a>

<%if rsEntries.EOF then%>


<p align="left">Du kan blive den første til at lægge en besked!</p>
<p>


<%else
rsEntries.Movefirst

'If viewing a previous set of messages, move to the right position
if Request.QueryString("recordnum") <> "" then
  rsEntries.Move(Request.QueryString("recordnum"))
end if

for count = 1 to 15%>

<b>Skrevet af:</b> <%=rsEntries("by")%><br>
<b>Skrevet den:</b> <%=rsEntries("datetime")%><br>
<br>
<b>Besked:</b><br><br>
<%= addLinks(rsEntries("message"),"_blank")%>

</font>


<hr class="borderstagwall">

<%rsEntries.Movenext
'Quit loop if no more messages left
if rsEntries.EOF then
  exit for
end if
next

'If there's still some more messages after displaying the first 20, display a link to the next page, using the .AbsolutePosition property as a placeholder (an ID field in the database is not reliable enough if manual DB deletions occur)

'We use .AbsolutePostion - 1 because we've already done a .Movenext onto the record we want to display first on the next page

if not rsEntries.EOF then%>

</font>
<p><b>
<a onmouseover="window.status='Gamle beskeder'; return true"onMouseOut="window.status=''" href="guestbook.asp?recordnum=<%=rsEntries.AbsolutePosition - 1%>">

Forrige beskeder
</a></b></p>


<%end if%>

<%end if%>

</center>
</font></td>
<td></td>
</tr>
</table></div>


</html>

<%
rsEntries.close
set rsEntries = nothing
conn.close
set conn = nothing
%>


Min guestbook_postprocess.asp:

<%
Option Explicit
Dim ConnectString, sql, conn, rsEntry, by, email, hjemmeside, message

'Assign form values to variables
by = Request.Form("by")
email = Request.Form("email")
hjemmeside = Request.Form("hjemmeside")
message = Request.Form("message")

'If no message entered, kill 'em
if message = "" then
  posterror()
end if

'If invalid email or no email then set it to nothing
if IsEmail(email) = False then
  email = ""
end if

'Open connection and insert user details into the database
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("guestbook.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString

Set rsEntry = Server.CreateObject("ADODB.Recordset")
rsEntry.open "guestbook", conn, 1, 3
rsEntry.AddNew
rsEntry("by") = FormatText(by)
rsEntry("email") = FormatText(email)
rsEntry("hjemmeside") = FormatText(hjemmeside)
rsEntry("message") = FormatText(message)
rsEntry.Update

rsEntry.close
set rsEntry = nothing
conn.close
set conn = nothing

Response.Redirect("guestbook.asp#messagetop")
%>

<%Function posterror()%>
<html>
<head>
<title>Gæstebog - Rune Hansen.tk</title>
<LINK href="../styles.css" type=text/css rel=stylesheet>
</head>
<body background="../Indexbilleder/runehansen.0catch.jpg">
<p><font color="#FFFFFF"><b><a href="guestbook.asp"><font face="Verdana" size="1">Tagwall</font></a> <font face="Verdana" size="1"> - <a href="tilfoj.asp">Tilføj
Besked</a> - <a href="guestbook-admin.asp">Admin Login</a></font></b>
<font face="Verdana" size="1">
<br>
<br>
Du har jo ikke skrevet nogen besked
:|</font></font></p>

<p><a href="java script:self.history.go(-1)"><font face="Verdana" size="1" color="#FFFFFF">Prøv
igen her</font></a></p>
</body>
</html>
<%Response.end
End Function%>

<%'New combined function that strips HTML, adds line breaks, and cuts up words longer than 30 chars
Function FormatText(sIn)
    Dim nCharPos, sOut, bInTag, sChar, wordLen
    sOut = ""
    bInTag = False
    wordLen = 0
    For nCharPos = 1 To Len(sIn)
        sChar = Mid(sIn, nCharPos, 1)
        If sChar = "<" Then
            bInTag = True
        End If
        If Not bInTag Then sOut = sOut & sChar
        If sChar = ">" Then
            bInTag = False
        End If
        if sChar = chr(13) then
            sOut = sOut + "<br>"
        end if
        if sChar = " " then
            wordLen = 0
        else
            wordLen = wordLen + 1
        end if
        if wordLen > 30 then
            sOut = sOut + " "
            wordLen = 0
        end if
    Next
    FormatText = sOut
End Function

Function IsEmail(sCheckEmail)
    Dim sEmail, nAtLoc
    IsEmail = True
    sEmail = Trim(sCheckEmail)
    nAtLoc = InStr(1, sEmail, "@") 'Location of "@"
   
    If Not (nAtLoc > 1 And (InStrRev(sEmail, ".") > nAtLoc + 1)) Then
        '"@" must exist, and last "." in string must follow the "@"
        IsEmail = False
    ElseIf InStr(nAtLoc + 1, sEmail, "@") > nAtLoc Then
        'String can't have more than one "@"
        IsEmail = False
    ElseIf Mid(sEmail, nAtLoc + 1, 1) = "." Then
        'String can't have "." immediately following "@"
        IsEmail = False
    ElseIf InStr(1, Right(sEmail, 2), ".") > 0 Then
        'String must have at least a two-character top-level domain.
        IsEmail = False
    End If
End Function
%>
Avatar billede metal_hansen Nybegynder
02. november 2002 - 14:30 #1
øøh hov der mangler også mulighed for at skrive sin mailadresse - så det vil jeg også gerne ha med.
Jeg gir gerne lidt point oveni :)
Avatar billede cygnet Praktikant
02. november 2002 - 15:40 #2
Mangler noget - hvor er siden hvor man indtaster...
Avatar billede metal_hansen Nybegynder
02. november 2002 - 15:44 #3
cynet > er det da ikke guestbook.asp??!! (jeg aner meget lidt om asp)
Avatar billede metal_hansen Nybegynder
02. november 2002 - 15:44 #4
Avatar billede cygnet Praktikant
02. november 2002 - 15:48 #5
Avatar billede metal_hansen Nybegynder
02. november 2002 - 15:49 #6
tilfoj.asp ser sådan her ud:

<html>

<head>
<title>Tilføj Besked</title>
<script src="../images/menu/js.js" type="text/javascript"></script>
    <link href="../images/menu/epictime_tagwall.css" rel="stylesheet" type="text/css">
   
</head>
<body link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" id="body">

<br><br>

</div>

<div align="center">
<table class="seksten">
<tr>
    <td><form action="guestbook_postprocess.asp" method="post">
<p><b><a onmouseover="window.status='Læs i gæstebogen igen'; return true"onMouseOut="window.status=''" href="java script:self.history.go(-1)"><- Tilbage</a></SCRIPT></NOSCRIPT>
<script language="JavaScript" src="../../statusbartip/webmeasure.js"></script></b></p>

<br>
Skriv din besked her:
<br>




<p><b><font face="Verdana" size="1" color="#FFFFFF">Navn:<br>
<input STYLE="color: black; font-family: Verdana; font-size: 12px; border: 1px solid black; background-color: #B22222"type="text" name="by" size=40 maxlength=50><br>
Indlæg:<br>
<textarea STYLE="color: black; font-family: Verdana; font-size: 12px; border: 1px solid black; background-color: #B22222" name="message" cols=40 rows=25></textarea><br><br>
<input STYLE="color: white; font-family: Verdana; font-size: 12px; border: 1px solid black; background-color: #B22222" type="submit" value="Tilføj">
</font></b></p>

</form>
<p><b></b></p></td></td>
</tr>
</table></div>



</body>
</html>
Avatar billede cygnet Praktikant
02. november 2002 - 15:51 #7
Prøv at erstattet tilfoj.asp med dette:

<html>

<head>
<title>Tilføj Besked</title>
<script src="../images/menu/js.js" type="text/javascript"></script>
    <link href="../images/menu/epictime_tagwall.css" rel="stylesheet" type="text/css">
   
</head>
<body link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" id="body">

<br><br>

</div>

<div align="center">
<table class="seksten">
<tr>
    <td><form action="guestbook_postprocess.asp" method="post">
<p><b><a onmouseover="window.status='Læs i gæstebogen igen'; return true"onMouseOut="window.status=''" href="java script:self.history.go(-1)"><- Tilbage</a></SCRIPT></NOSCRIPT>
<script language="JavaScript" src="../../statusbartip/webmeasure.js"></script></b></p>

<br>
Skriv din besked her:
<br>




<p><b><font face="Verdana" size="1" color="#FFFFFF">Navn:<br>
<input STYLE="color: black; font-family: Verdana; font-size: 12px; border: 1px solid black; background-color: #B22222"type="text" name="by" size=40 maxlength=50><br>
<b><font face="Verdana" size="1" color="#FFFFFF">Hjemmeside:<br>
<input STYLE="color: black; font-family: Verdana; font-size: 12px; border: 1px solid black; background-color: #B22222"type="text" name="hjemmeside" size=40 maxlength=50><br>
<b><font face="Verdana" size="1" color="#FFFFFF">Email:<br>
<input STYLE="color: black; font-family: Verdana; font-size: 12px; border: 1px solid black; background-color: #B22222"type="text" name="email" size=40 maxlength=50><br>
Indlæg:<br>
<textarea STYLE="color: black; font-family: Verdana; font-size: 12px; border: 1px solid black; background-color: #B22222" name="message" cols=40 rows=25></textarea><br><br>
<input STYLE="color: white; font-family: Verdana; font-size: 12px; border: 1px solid black; background-color: #B22222" type="submit" value="Tilføj">
</font></b></p>

</form>
<p><b></b></p></td></td>
</tr>
</table></div>



</body>
</html>
Avatar billede metal_hansen Nybegynder
02. november 2002 - 15:54 #8
så får jeg denne fejl:

Tekniske oplysninger (for supportteknikere)

Fejltype:
ADODB.Recordset (0x800A0CC1)
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
/OLAK/tagwall/guestbook_postprocess.asp, line 31


Browsertype:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Side:
POST 97 bytes to /OLAK/tagwall/guestbook_postprocess.asp

POST Data:
by=Rune+Hansen&hjemmeside=www.runehansen.tk&email=runehansen26@hotmail.com&message=testing+%3A%29
Avatar billede cygnet Praktikant
02. november 2002 - 15:56 #9
Har du felterne "hjemmeside" og "email" i den table lige som "by" og "message" ?
Avatar billede cygnet Praktikant
02. november 2002 - 15:56 #10
( i din database )
Avatar billede metal_hansen Nybegynder
02. november 2002 - 15:56 #11
øøøøh aner det ikke. 2 sek, så kan du selv hente hele moletjavsen på min ftp.
Avatar billede cygnet Praktikant
02. november 2002 - 15:58 #12
prøv at kigge i din database (guestbook.mdb)
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:00 #13
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:01 #14
kan du komme ind?
Avatar billede cygnet Praktikant
02. november 2002 - 16:06 #15
luk lige databasen på din computer.
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:07 #16
er gjort.
og jeg har gjort så du kan uploade den igen :)
Avatar billede cygnet Praktikant
02. november 2002 - 16:10 #17
men ikke så jeg kan slette den gamle...
Avatar billede cygnet Praktikant
02. november 2002 - 16:11 #18
ligge som guestbook1.mdb den nye
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:12 #19
ok jeg prøver lige at se hvordan det virker så :)
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:15 #20
ingen fejlmelding - men der kommer ikke til at stå noget på siden??!!
Avatar billede cygnet Praktikant
02. november 2002 - 16:21 #21
<b>Skrevet af:</b> <%=rsEntries("by")%><br>
<b>Skrevet den:</b> <%=rsEntries("datetime")%><br>
<br>
<b>Besked:</b><br><br>
<%= addLinks(rsEntries("message"),"_blank")%>

erstat det med :

<b>Skrevet af:</b> <%=rsEntries("by")%><br>
<b>Email:</b> <%=rsEntries("email")%><br>
<b>Hjemmeside:</b> <%=rsEntries("hjemmeside")%><br>
<b>Skrevet den:</b> <%=rsEntries("datetime")%><br>
<br>
<b>Besked:</b><br><br>
<%= addLinks(rsEntries("message"),"_blank")%>
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:23 #22
fedest - men hvorfor blir de ikke til klikbare links - det skulle de jo helst :)
Avatar billede cygnet Praktikant
02. november 2002 - 16:24 #23
eller lidt pænere:
<b>Skrevet af:</b>
<% If Len(rsEntries("email")) > 0 Then %><a href="mailto:<%=rsEntries("email")%>"><%=rsEntries("by")%></a><br>
<% else %>
<%=rsEntries("by")%><br>
<% end if %>
<% If Len(rsEntries("email")) > 0 Then %><
Avatar billede cygnet Praktikant
02. november 2002 - 16:25 #24
usp..  fortidlig klik på udfør vent lige lidt
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:25 #25
ok
Avatar billede cygnet Praktikant
02. november 2002 - 16:26 #26
<b>Skrevet af:</b>
<% If Len(rsEntries("email")) > 0 Then %><a href="mailto:<%=rsEntries("email")%>"><%=rsEntries("by")%></a><br>
<% else %>
<%=rsEntries("by")%><br>
<% end if %>
<% If Len(rsEntries("hjemmeside")) > 0 Then %><a href="<%=rsEntries("hjemmeside")%>" target="_blank"><%=rsEntries("hjemmeside")%></a><br>
<% else %>
<% end if %>
Avatar billede cygnet Praktikant
02. november 2002 - 16:27 #27
håber det virker

/cygnet
www.cygnet.dk
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:28 #28
øøøh er der ikke gået lidt kage i det?! nu skriver den noget helt andet...
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:31 #29
Avatar billede cygnet Praktikant
02. november 2002 - 16:32 #30
<b>Skrevet af:</b>
<% If Len(rsEntries("email")) > 0 Then %><a href="mailto:<%=rsEntries("email")%>"><%=rsEntries("by")%></a><br>
<% else %>
<%=rsEntries("by")%><br>
<% end if %>
<% If Len(rsEntries("hjemmeside")) > 0 Then %><b>Hjemmeside</b>: <a href="<%=rsEntries("hjemmeside")%>" target="_blank"><%=rsEntries("hjemmeside")%></a><br>
<% else %>
<% end if %>
<b>Skrevet den:</b> <%=rsEntries("datetime")%><br>
<br>
<b>Besked:</b><br><br>
<%= addLinks(rsEntries("message"),"_blank")%>
Avatar billede cygnet Praktikant
02. november 2002 - 16:33 #31
Manglede lige dato stemplet.
Avatar billede cygnet Praktikant
02. november 2002 - 16:33 #32
Burde virke med det jeg lige har smidt.

/cygnet
www.cygnet.dk
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:33 #33
ja så er den der nææææsten - mit www.runehansen.tk link blir til http://217.157.173.133/OLAK/tagwall/www.runehansen.tk
Avatar billede cygnet Praktikant
02. november 2002 - 16:35 #34
fordi du selv har glemt at skrive http:// foran
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:36 #35
det burde ikke være nødvendigt - det gør folk jo ikke - come on :)
Avatar billede cygnet Praktikant
02. november 2002 - 16:37 #36
Ikke sikker på det virker - men prøv:

<% If Len(rsEntries("email")) > 0 Then %><a href="mailto:<%=rsEntries("email")%>"><%=rsEntries("by")%></a><br>
<% else %>
<%=rsEntries("by")%><br>
<% end if %>
<% If Len(rsEntries("hjemmeside")) > 0 Then %><b>Hjemmeside</b>: <%= addLinks(rsEntries("hjemmeside"),"_blank")%><br>
<% else %>
<% end if %>
<b>Skrevet den:</b> <%=rsEntries("datetime")%><br>
<br>
<b>Besked:</b><br><br>
<%= addLinks(rsEntries("message"),"_blank")%>
Avatar billede metal_hansen Nybegynder
02. november 2002 - 16:40 #37
YES!!!!!!! nu er den der bare!!!
1000 tak for hjælpen!
så er der point ved kasse 1. :)
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