 Källkoden för /anders.enges/asp/guestbook.asp
 Källkoden för /anders.enges/asp/guestbook.asp 
<!--#include file="../inc/navstuff.asp" -->
<!--  #include file="../inc/connection.asp" -->
<%
Function fixaHREF( inHREF)
     	if instr(inHREF, "ttp://") <= 0 Then
          		fixaHREF = "http://" & inHREF
     	Else
          		fixaHREF = inHREF
     	End if
End Function
' Om vi submitar formen så kommer FROM helst att vara satt 
' Detta kan vi kontrollera här
' Vi tar värdena som kommer i URL och sätter in dem i en databas
' Orsaken till den "konstiga" placeringen i filen är att man 
' inte kan använda Response.Redirect om man redan skrivit 
' till sidan. 
' Man skulle kunna sätta Response.Buffer = 1 för att undvika detta
' men det går även att sätta koden tillräckligt tidigt
  If Not IsEmpty(Request("FROM")) Then
     	' SQL satsen för tabellen
     	SQL = "SELECT * FROM GUESTBOOK"
     	Set Conn = Server.CreateObject("ADODB.Connection")
     	Conn.Open strConn
     	Set RS = Server.CreateObject("ADODB.RecordSet")
     	' Måste öppna recordsetten för uppdatering = 3 som sista
     	' parameter
     	RS.Open SQL, Conn, 1, 3
     	' Kollar vad klockan är nu
     	currentTime = now
     	' Sätter in en ny post
     	RS.AddNew
     	' tar värdet som kom för FROM från URL med Request
     	' och sätter det i fältet med samma namn
     	' vi upprepar för övriga fält
     	RS("FROM") = Request("FROM")
     	RS("EMAIL") = Request("EMAIL")
     	RS("URL") = Request("URL")
     	RS("COMMENT") = Request("COMMENT")
     	' Vi kollar även (utan att de vet det) vilken
     	' IP adress de har samt vilken browser de använder
     	RS("IP_ADRESS") = Request.ServerVariables("REMOTE_ADDR")
'	RS("BROWSER") = Left(Request.ServerVariables("HTTP_USER_AGENT"),50)
     	' datum skall matas in i formen mm/dd/yyyy hh:mm:ss
     	' för att fungera med alla LCID och lansdinställningar på servern
     	RS("DATE") = Month(currentTime) & "/" & _
                    				 Day(currentTime) & "/" & _
                    				 Year(currentTime)& " " & _
                    				 Hour(currentTime) & ":" & _
                    				 Minute(currentTime) & ":" & _
                    				 Second(currentTime)
     	' Vi sparar de nya fältvärdena
     	RS.Update
     	' Sedan är vi färdiga med denna session
     	RS.Close
     	Conn.Close
     	Set RS = Nothing
     	Set Conn = Nothing
     	' Vi visar inte sidan utan "redirectar" till samma sida men 
     	' utan några värden på URL raden (Ser snyggare ut!)
     	Response.Redirect Request.ServerVariables("URL")
  End If
%>
<!--          Här kan du sätta en normal header med <HTML><HEAD> o.s.v	jag inkluderar dock min med de två följande raderna-->
<!--        Om vi klickade på länken "Klicka här för ..."	så sätts ?NY=1 till URL 	Detta märker vi här och visar en form där man kan fylla	i sina uppgifter-->
<%  
  if Request("NEW") = 1 Then
%>
<!--  Form för att kunna mata in de nya värdena. -->
<form name="GUEST" method="GET">
<table>
<tr>
     	<td>
          		Jag är: 
     	</td>
     	<td>
          		<input TYPE="TEXT" NAME="FROM" SIZE="40" MAXLENGTH="100">
     	</td>
</tr>
<tr>
     	<td>
          		Email: 
     	</td>
     	<td>
          		<input TYPE="TEXT" NAME="EMAIL" SIZE="40" MAXLENGTH="100">
     	</td>
</tr>
<tr>
     	<td>
          		Hemsidan: 
     	</td>
     	<td>
          		<input TYPE="TEXT" NAME="URL" SIZE="40" MAXLENGTH="120">
     	</td>
</tr>
<tr>
     	<td colspan="2">
     	<textarea NAME="COMMENT" COLS="60" ROWS="8"></textarea>
     	</td>
</tr>
<tr>
     	<td colspan="2">
     	<!--  		Ett trix för att undvika "fula knappar". 		Kör submit genom href o javascript -->
     	
     	<a href="javascript:document.GUEST.submit()"><font face="Comic Sans MS,Arial,Helvetica,Univers" size="7">Ok</font></a>
     	   
     	<!--  går tillbaka till huvudlistan -->
     	<a href="<%  =Request.ServerVariables("URL") %>"><font face="Comic Sans MS,Arial,Helvetica,Univers" size="7">Tillbaka</font></a>
     	
     	</td>
</tr>
</table>
</form>
<!--  Formen tog slut -->
<%
  Else 
%>
<!--  	Hit kommer vi om det inte fanns någonting alls efter filnamnet i	URL. Vi visar då en enkel lista-->
<%
' Öppna tabeller och sorter så de nyaste kommer först
' vi visar bara de 20 senaste (TOP 20)
  SQL = "SELECT TOP 20 * FROM GUESTBOOK ORDER BY DATE DESC"
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open strConn
  ' En simpel forward only duger
  Set RS = Conn.Execute(SQL)
%>
<font face="Comic Sans MS,Arial,Helvetica,univers" size="5">
<a href="<%  =Request.ServerVariables("URL")%>?NEW=1">
<img src="../images/bullet2.gif" border="0" WIDTH="27" HEIGHT="24">
Klicka här för att skriva i min gästbok</a>
</font>
<%
  theRow = 1
  Do While Not RS.EOF 
%>
<div align="<%  =getZigZag %>">
<table width="400" border="3" BORDERCOLORLIGHT="#F5F5DC" BORDERCOLORDARK="#BC8F8F">
<tr><td>Mitt namn:</td><td bgcolor="FFFFFF"><%=Server.HTMLEncode(RS("FROM"))%> </td></tr>
<tr><td>Email:</td><td bgcolor="FFFFFF"><%=Server.HTMLEncode(RS("EMAIL"))%> </td></tr>
<tr><td>Hemsida:</td><td bgcolor="FFFFFF"><a href="<%=fixaHREF(Server.HTMLEncode(RS("URL")))%>" target="_new"><%=Server.HTMLEncode(RS("URL"))%></a> </td></tr>
<tr><td colspan="2" bgcolor="FFFFFF"><%=Server.HTMLEncode(RS("COMMENT"))%> </td></tr>
<tr><td width="100">Tid:</td><td bgcolor="FFFFFF"><%=RS("DATE")%> </td></tr>
</table>
</div>
<%
  RS.MoveNext
  Loop
  RS.Close
  Conn.Close
  Set RS = Nothing
  Set Conn = Nothing
%>
<%  End If %>
<%
' Jag tycker om "varannangångs kod" !
Dim	zigZag
Function getZigZag()
     	if zigZag Then
          		getZigZag = "LEFT"
     	Else
          		getZigZag = "RIGHT"
     	End If
     	zigZag = Not zigZag
End Function
%>
<!--#include file="../inc/footer.asp" -->