<% Option Explicit %> <% 'Buffer the response Response.Buffer = True 'Dimension variables Dim strName 'Holds the Users name Dim strEmailAddress 'Holds the Users e-mail address Dim strCountry 'Holds the users country Dim strHomepage 'Holds the Users homepage Dim strComments 'Holds the Users comments Dim dtmEntryDate 'Holds the date the commnets where made Dim intRecordPositionPageNum 'Holds the record position Dim intRecordLoopCounter 'Loop counter for displaying the guestbook records Dim intTotalNumGuestbookEntries 'Holds the total number of records in the database Dim intTotalNumGuestbookPages 'Holds the total number of pages in the database Dim intLinkPageNum 'Holds the page number to be linked to 'If this is the first time the page is displayed then the guestbook record position is set to page 1 If Request.QueryString("PagePosition") = "" Then intRecordPositionPageNum = 1 'Else the page has been displayed before so the guestbook record postion is set to the Record Position number Else 'Set the guestbook record position only if a valid page has been passed If IsNumeric(Request.QueryString("PagePosition")) Then intRecordPositionPageNum = CInt(Request.QueryString("PagePosition")) 'Else set the guestbook record position to page 1 Else intRecordPositionPageNum = 1 End If End If 'Initalise the strSQL variable with an SQL statement to query the database by selecting all tables ordered by the decending date strSQL = "SELECT " & strDbTable & "Comments.* FROM " & strDbTable & "Comments WHERE (((tblGBComments.Display)=Yes)) ORDER BY Date_stamp DESC;" 'Set the cursor type property of the record set to dynamic so we can naviagate through the record set rsCommon.CursorType = 3 'Query the database rsCommon.Open strSQL, adoCon 'Set the number of records to display on each page by the constant set at the top of the script rsCommon.PageSize = intRecordsPerPage 'Get the guestbook record poistion to display from If NOT rsCommon.EOF Then rsCommon.AbsolutePage = intRecordPositionPageNum %> Guest Book
Marmalade Guestbook

Welcome to the guestbook. If you would like to sign the guest book then click on the link below.

Sign the guest book
<% 'If there are no rcords in the database display an error message If rsCommon.EOF Then 'Call reset server variables function ResetServerVariables() 'If the page position is not 1 and were at the end of the recordset then redirect to the first page If intRecordPositionPageNum > 1 Then Response.Redirect "default.asp?PagePosition=1" 'Tell the user there are no records to show Response.Write "Sign the guestbook

" Response.Write "
There are no records in the guestbook database" Response.Write "
Please check back later" Response.End 'Display the guestbook Else 'Count the number of enties in the guestbook database intTotalNumGuestbookEntries = rsCommon.RecordCount 'Count the number of pages there are in the guestbook database calculated by the PageSize attribute set above intTotalNumGuestbookPages = rsCommon.PageCount 'Display the HTML number number the total number of pages and total number of records in the guestbook database %>

There are <% = intTotalNumGuestbookEntries %> guestbook entries in <% = intTotalNumGuestbookPages %> pages and you are on page number <% = intRecordPositionPageNum %>

<% 'For....Next Loop to display records from the guestbook database For intRecordLoopCounter = 1 to intRecordsPerPage 'If there are no guestbook records left to display then exit loop If rsCommon.EOF Then Exit For 'Read in the values form the database strName = rsCommon("Name") strCountry = rsCommon("Country") strEmailAddress = rsCommon("EMail") dtmEntryDate = CDate(rsCommon("Date_stamp")) strHomepage = rsCommon("Homepage") strComments = rsCommon("Comments") 'If there is no homepage entry to display the display no URL given If strHomepage = "http://" then strHomepage = "no URL given" 'Else turn the URL stored in the strHomepage variable into a hyperlink Else strHomepage = "" & strHomepage & "" End If 'Write the HTML to the web browser to display the guestbook entries %>
Comments by <% 'Display the email address if there is one 'If strEmailAddress <> "" Then Response.Write("" & strName & "") Else Response.Write(strName) Response.Write(strName) %> on <% = FormatDateTime(dtmEntryDate, VbLongDate) %> at <% = FormatDateTime(dtmEntryDate, VbShortTime) %> IP Logged
<% = strComments %>
<% = strCountry %> <% = strHomepage %>

<% 'Move to the next record in the database rsCommon.MoveNext 'Loop back round Next End If 'Display an HTML table with links to the other entries in the guestbook %>
<% 'If there are more pages to display then add a title to the other pages If intRecordPositionPageNum > 1 or NOT rsCommon.EOF Then Response.Write vbCrLf & " Page:  " End If 'If the guestbook page number is higher than page 1 then display a back link If intRecordPositionPageNum > 1 Then Response.Write vbCrLf & ("<< Prev") End If 'If there are more pages to display then display links to all the pages If intRecordPositionPageNum > 1 or NOT rsCommon.EOF Then 'Display a link for each page in the guestbook For intLinkPageNum = 1 to intTotalNumGuestbookPages 'If there is more than 7 pages display ... last page and exit the loop If intLinkPageNum > 15 Then If intTotalNumGuestbookPages = intRecordPositionPageNum Then Response.Write(" ..." & intTotalNumGuestbookPages) Else Response.Write(" ..." & intTotalNumGuestbookPages & "") 'Exit Loop Exit For 'Else display the normal link code Else 'If the page to be linked to is the page displayed then don't make it a hyper-link If intLinkPageNum = intRecordPositionPageNum Then Response.Write(" " & intLinkPageNum) Else Response.Write(" " & intLinkPageNum & "") End If Next End If 'If it is Not the End of the guestbook entries then display a next link for the next guestbook page If NOT rsCommon.EOF then Response.Write (" Next >>") End If 'Finsh HTML the table %>
<% 'Call reset server variables function ResetServerVariables() Sub ResetServerVariables() 'Reset Server Variables rsCommon.Close Set rsCommon = Nothing adoCon.Close Set adoCon = Nothing End Sub %>