---
title: "Gästbok"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/152888-gästbok"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Jeppeweb"
published: "2006-10-23T19:35:51.000Z"
updated: "2006-10-25T09:27:49.000Z"
replies: 22
views: 931
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/152888-gästbok"
---

# Gästbok

_Sida 1 av 2._

## #1 — Jeppeweb, 2006-10-23T19:35Z

Hej!

Jag vill få reda på hur jag skall gå till väga för att få mina användare att kunna se hur många nya gästboksinlägg de har ( if so ) ..

Så här ser gästbokskoden ut;

```
<% 

	SQL = "Select * From gastbok WHERE till = "&userid&" ORDER BY datum DESC"
	
	Set Rs2 = Server.CreateObject("ADODB.RecordSet")
	Rs2.CursorLocation = 3

	'Antal inlägg som ska vissas vid katalog visning
	Rs2.PageSize = 10

	Rs2.Open SQL, Connect, 1,3

	if Rs2.eof then
		Response.Write "<br><i>Den här kisen har inte fått några gästboksinlägg alls :/ skriv?</i>"
	else
	
			If Rs2.PageCount > 1 Then
			For i = 1 to Rs2.PageCount
				If i = CLng(sida) Then
					Response.Write "[" & i & "]&nbsp;"
				Else
					Response.Write "<a href=?page=61&userid="&userid&"&sida=" & i & ">" & i & "</a>&nbsp;"
				End If
			Next
		End If

		Dim sida
		sida = Trim(Request.QueryString("sida"))
		If sida = "" Then
			sida = 1
		End If
		
		Rs2.AbsolutePage = sida		

		Dim rad
		rad = 0
		
		Response.write "<table width='99%'>"
		
		While Not Rs2.EOF and rad < Rs2.PageSize
			rad = rad + 1
			
			if Rs2("privat") = 1 AND egen = 1 OR Rs2("privat") = 1 AND Session("cmid") = Rs2("fran") OR Rs2("privat") = 0 then
				if x = 0 then
					bgcolor = "#E7E7FE"
					x = 1
				else
					bgcolor = "#ffffff"
					x = 0
				end if

				SQL = "Select * from medlemmar where id = '"&Rs2("fran")&"'"
				Set Rs3 = Connect.execute(SQL)

				Response.Write "<tr><td bgcolor="&bgcolor&">"

			 	if Rs3("bild") = "" OR Rs3("bild") = "ingen" then
					Response.Write "<img src=bilder/userspics/ingenbild.gif width=40 height=50>"
				else
					if Rs3("bildaccept")="1" then
						Response.Write "<a href=?page=2&userID="&Rs3("ID")&" border=0><img src=bilder/userspics/"&Rs3("bild")&" width=40 height=50 border=0></a>"
					else
						Response.Write "<img src=bilder/userspics/ingenbild2.gif width=40 height=50>"
					end if
				end if

				Response.Write "<td bgcolor="&bgcolor&" width=600>Skrivet av <a href=?page=2&userID="&Rs3("ID")&">"&byt(Rs3("alias"))&"</a> den "&Rs2("datum")&""
				if Rs2("privat") = 1 then
					Response.Write " [hemligt] "
				end if
				Response.Write "<br><br><b></b> "&Rs2("text")
				if egen = 1 then
					Response.Write "<br><br><a href=?page=61&userid="&CLng(Rs2("fran"))&">Svara</a> - <a href=?page=61&userid="&userid&"&sida=" & sida & "&delID="&CLng(Rs2("Id"))&">Ta bort</a>"
				end if
				Response.Write"</td></tr>"
				
Connect.Execute("update gastbok set last = '1' WHERE ID = " & Rs("id") & "")

				Rs3.close
				Set Rs3 = Nothing

			end if

		Rs2.MoveNext
		Wend
		
		Response.write "</table>"
		
		If Rs2.PageCount > 1 Then
			For i = 1 to Rs2.PageCount
				If i = CLng(sida) Then
					Response.Write "[" & i & "]&nbsp;"
				Else
					Response.Write "<a href=?page=61&userid="&userid&"&sida=" & i & ">" & i & "</a>&nbsp;"
				End If
			Next
		End If

	end if

	Rs2.CLOSE
	Set Rs2 = nothing

if Request.Querystring("action") = "spara" then
%><!-- #include file="databaskopplingar.asp" --><%
	fran = Session("cmID")
	till = userid
	status = 5
	datum = Now
	text = Replace(request.Form("text"),"'","\'")
	ip = Request.ServerVariables("REMOTE_ADDR")
		
	if request.Form("privat") = 1 then
		privat = 1
	else
		privat = 0
	end if
	
	Connect.Execute("INSERT INTO gastbok (fran, till, text, datum, ip, privat) VALUES('"& fran &"','"& till &"','"& text &"','"& datum &"','"& ip &"','"& privat &"')")
	
	Response.Redirect "?page=61&userid="&userid&""
end if

if Request.Querystring("delID") <> "" then %><!-- #include file="databaskopplingar.asp" --><%
		sida = Request.Querystring("sida")
		Connect.execute("delete from gastbok where id = "&request.querystring("delID")&"")
		Response.Redirect("?page=61&sida="&sida&"")
end if

egen = ""
Connect.CLOSE
Set Connect = nothing

else
	s = Request.Querystring("s")
	Set FSO = Server.CreateObject("Scripting.FileSystemObject")
	Set File = FSO.OpenTextFile(Server.MapPath("databaskopplingar.asp"),1)
	Response.Write Replace(server.HTMLEncode(File.ReadAll),vbCrLf, "<br>")
	File.Close
	Set File = Nothing
	Set FSO = Nothing
end if
%>
```

Såhär försöker jag skriva ut antal nya;

```
		<!-- #include file="databaskopplingar.asp" -->
<%
set count13372 = connect.execute("SELECT Count(*) AS antalnyagb FROM gastbok WHERE last = '0' AND fran = '"&Session("cmID")&"'")
response.write "("
response.write ""&count13372("antalnyagb")&""
count13372.close
connect.close
%>)
```

Permalänk: https://www.webforum.nu/p/152888

## #2 — Jeppeweb, 2006-10-23T20:32Z

zzznark!

Permalänk: https://www.webforum.nu/p/1886727

## #3 — Jeppeweb, 2006-10-24T07:37Z

Ingen som kan hjälpa mig?

Permalänk: https://www.webforum.nu/p/1886837

## #4 — oskars, 2006-10-24T07:56Z

Luuuugn!

Så här gör jag för att räkna valda poster från MySQL:

```
set Count = Server.CreateObject("ADODB.Recordset")
set Count.ActiveConnection = Conn
Count.CursorLocation = 3
		    
 Count.Open "SELECT * FROM Tabell"
		    
 Senaste = Count.RecordCount

 Response.Write("("&Senaste&")")
		    
 Count.Close
Set Count = Nothing
```

Permalänk: https://www.webforum.nu/p/1886843

## #5 — Troxy, 2006-10-24T08:25Z

oskars, det där var ett VÄLDIGT dåligt sätt att räkna antalet poster på tyvärr. ;)
Att först hämta allting i databasen, men sedan bara skriva ut antalet records gör att databasen jobbar i onödan.
Det är bättre att lösa själva räknandet direkt i SQL-frågan. Då hämtas bara en liten siffra, istället för alla poster.

```
set oCount = oConnection.Execute("SELECT COUNT(*) AS antal FROM tabell")
response.write oCount("antal")
oCount.close
set oCount=nothing
```

Permalänk: https://www.webforum.nu/p/1886856

## #6 — Compusa, 2006-10-24T09:16Z

> **Troxy skrev:**
>
> oskars, det där var ett VÄLDIGT dåligt sätt att räkna antalet poster på tyvärr. ;)
>
>
> ```
> set oCount = oConnection.Execute("SELECT COUNT(*) AS antal FROM tabell")
> response.write oCount("antal")
> oCount.close
> set oCount=nothing
> ```

Precis, aggregat-funktioner finns ju av en anledning   :i

Permalänk: https://www.webforum.nu/p/1886870

## #7 — Jeppeweb, 2006-10-24T13:50Z

Vart ska jag slänga in den där koden?

Permalänk: https://www.webforum.nu/p/1886964

## #8 — oskars, 2006-10-24T13:52Z

> **Troxy skrev:**
>
> oskars, det där var ett VÄLDIGT dåligt sätt att räkna antalet poster på tyvärr. ;)
> Att först hämta allting i databasen, men sedan bara skriva ut antalet records gör att databasen jobbar i onödan.
> Det är bättre att lösa själva räknandet direkt i SQL-frågan. Då hämtas bara en liten siffra, istället för alla poster.
> 
>
>
> ```
> set oCount = oConnection.Execute("SELECT COUNT(*) AS antal FROM tabell")
> response.write oCount("antal")
> oCount.close
> set oCount=nothing
> ```

Perfekt! Kan jag ersätta all min övre kod med den du postade?

  :stud

Permalänk: https://www.webforum.nu/p/1886967

## #9 — Jeppeweb, 2006-10-24T18:34Z

Hjälp mig ffs!

Permalänk: https://www.webforum.nu/p/1887061

## #10 — paddan, 2006-10-24T19:29Z

Du får lära dig lite själv, men här är tipsen.
Av koden du fick för att ta reda på hur många gästboksinlägg som postas sen dem var på sidan senast.
Men du måste spara när dem var där senast på någotvis, enklast genom en cookie på deras dator som uppdateras med ett datum. 
Sen använder du koden så här:

```
cookiedatum = cookie("guestbookdatum")
set oCount = oConnection.Execute("SELECT COUNT(*) AS antal FROM tabell WHERE datum > "&cookieDatum&"")
response.write oCount("antal")
oCount.close
set oCount=nothing
```

 
Förlåt för min svengengelska, enbart för att det skulle vara enklare att förstå.

Du får söka lite på cookie här på WF, det är inte så svårt. Glöm inte varna om du sparar något på någons dator, enligt lagen är du skyldig till det.

/paddan

Permalänk: https://www.webforum.nu/p/1887077

## #11 — Jeppeweb, 2006-10-24T19:39Z

gastbok.asp

```
<%
cookiedatum = cookie("datum")
set oCount = oConnection.Execute("SELECT COUNT(*) AS last FROM gastbok WHERE datum > "&cookieDatum&"")
response.write oCount("last")
oCount.close
set oCount=nothing
%>
```

Error Type:
Sun ONE ASP VBScript runtime (0x800A000D)
Type mismatch
/gastbok.asp, line 107

Permalänk: https://www.webforum.nu/p/1887079

## #12 — nakoz, 2006-10-25T00:07Z

Vad har du för värde i cookiedatum om du skriver ut den med response.write?

Har du ens skapat cookien?

Om ja så kan ev. cDate(cookie("datum")) vara på sin plats när du skapar variabeln cookiedatum...

mvh,

Permalänk: https://www.webforum.nu/p/1887150

## #13 — Jeppeweb, 2006-10-25T00:12Z

Hur skapar jag cookien?

Permalänk: https://www.webforum.nu/p/1887152

## #14 — SB, 2006-10-25T04:27Z

```
Response.Cookies("Datum") = "DittDatumVärde"
```

Permalänk: https://www.webforum.nu/p/1887155

## #15 — nakoz, 2006-10-25T07:15Z

"DittDatumVärde" kan man ju säga borde vara ex. en Now() - då datum och tid lagras. Lagrar du bara datum, å besökaren loggar in två gånger på samma dag kan det bli lurigt att visa "nya" inlägg.

Permalänk: https://www.webforum.nu/p/1887190

## #16 — Jeppeweb, 2006-10-25T07:19Z

\<%
Response.Cookies("Datum") = "datum"
cookiedatum = cookie("Datum")
set oCount = oConnection.Execute("SELECT COUNT(\*) AS last FROM gastbok WHERE datum \> "&cookieDatum&"")
response.write oCount("last")
oCount.close
set oCount=nothing
%\>

Hur ska jag kunna se värdet om jag får felmeddelande ?

Error Type:
Sun ONE ASP VBScript runtime (0x800A000D)
Type mismatch
/gastbok.asp, line 24

line 24:

cookiedatum = cookie("Datum")

Permalänk: https://www.webforum.nu/p/1887191

## #17 — paddan, 2006-10-25T07:47Z

<https://www.devguru.com>
Sök på cookie där i asp.
Du måste läsa på lite om cookies, 
cookiedatum = cookie("Datum") är ej korrekt det var bara ett exempel.

Permalänk: https://www.webforum.nu/p/1887200

## #18 — nakoz, 2006-10-25T07:50Z

Egentligen skulle jag säga att du tagit dig vatten över huvudet.
Men när besökaren registrerar sig; så skapar du cookien med ex: Response.Cookies("minSajt")("lastVisit") = Now()

Sen när kontrollen görs varje gång besökaren loggar in kan de kanske se ut så här:

```
<%
lastVis = cDate(Request.Cookies("minSajt")("lastVisit"))
set oCount = oConnection.Execute("SELECT COUNT(*) AS last FROM gastbok WHERE datum > '" & lastVis & "')
If oCount("last") > 0 Then
response.write oCount("last") & " nya inlägg."
Else
response.write "inga nya inlägg."
End If
oCount.close
set oCount=nothing
%>
```

Sen när de går in i gästboken; och uppenbarligen läser; görs detta:

```
Response.Cookies("minSajt")("lastVisit") = Now()
```

för att hela tiden få in ett värde i cookien när de senast kollade gästboken.

Permalänk: https://www.webforum.nu/p/1887203

## #19 — Compusa, 2006-10-25T08:03Z

> **Jeppeweb skrev:**
>
> Hjälp mig ffs!

Att ni ens orkar bry er om ett hjälpa en person som uppför sig så här. Han förtjänar ingen hjälp.   x(

Permalänk: https://www.webforum.nu/p/1887210

## #20 — Jeppeweb, 2006-10-25T08:58Z

Gjort som du sa nakoz.. lade in den där snutten i login.asp, får detta felmeddelande;

Sun ONE ASP VBScript compilation (0x800A0438)
Unexpected end of line inside a string
/login.asp, line 92, column 109

login.asp

```
<% If Request.QueryString("action")	= "login"	Then %><!-- #include file="databaskopplingar.asp" --><% 
	SQL = "Select * from medlemmar"
	Set RecSet = Connect.execute(SQL)

	X = FALSE

	Do Until X = TRUE OR RecSet.EOF

		If RecSet("anvandarnamn") = Request.Form("Username") Then
			X = TRUE
			Exit Do
		End If

	RecSet.MoveNext

	Loop

	If X = TRUE Then

		Y = FALSE
		Do Until Y = TRUE OR RecSet.EOF

		If RecSet("losenord") = Request.Form("Password") Then
		Y = TRUE
		Exit Do
		End If

		RecSet.MoveNext

		Loop

	End If

	If X = FALSE Then 
		Session("msg") = "Du har anget ett felaktigt användarnamn eller lösenord!"
		response.redirect "menu.asp"
	ElseIf Y = FALSE Then
		Session("msg") = "Du har anget ett felaktigt användarnamn eller lösenord!"
		response.redirect "menu.asp"
	End If

	If X = TRUE AND Y = TRUE Then 
if RecSet("online") = "3" then
	Session("msg") = "Ditt konto är avstängt! Om du har klagomål eller annat kontakta crew per e-mail: admin@hejkompis.be "
	RecSet.Close
	Connect.Close
	response.redirect "main.asp"
else
	if RecSet("aktiverad") = "0" then
		Session("msg") = "Ditt konto är inte aktiverat! Om du ej fått något mail så kontakta admin genom att klicka på länken länst ner till höger på sidan! <br><br>"
		RecSet.Close
		Connect.Close
		response.redirect "main.asp"
	else
	
		Session("cmid") = RecSet("id")
		Session("cmanvandarnamn") = RecSet("anvandarnamn")
    	Session("cmalias") = RecSet("alias")
		Session("cminloggad") = "ja"
		antalinlogg = RecSet("inloggningar") + 1
		online = "1"
		status = RecSet("status") + 1
		senastip = Request.ServerVariables("REMOTE_ADDR")
		senastdatum = Now
		
		

		
		Connect.Execute("update medlemmar set inloggningar = '"&antalinlogg &"', online = '"&online&"', status = '"&status&"', senastip = '"&senastip&"', senastdatum = '"&senastdatum&"' WHERE ID = " & RecSet("id") & "")
		Connect.Execute("INSERT INTO iplogg (ip,datum,vems) VALUES('"& senastip &"','"& senastdatum &"','"& Session("cmid") &"')")

		RecSet.Close
		Connect.Close
end if
end if
    End If 
    
end if
%>
<%
	if session("msg") <> "" then
		Response.Write "<center><br><br><font color=red><big>"&session("msg")&"</big></font><br><br></center>"
		session("msg") = ""
	end if
%>

<%

senastdatum = cDate(Request.Cookies("minSajt")("senastdatum"))
set oCount = oConnection.Execute("SELECT COUNT(*) AS last FROM gastbok WHERE datum > '" & senastdatum & "')
If oCount("last") > 0 Then
response.write oCount("last") & " nya inlägg."
Else
response.write "inga nya inlägg."
End If
oCount.close
set oCount=nothing
%>
```

Permalänk: https://www.webforum.nu/p/1887220

---

Tråden på webben: https://www.webforum.nu/amne/asp/152888-gästbok  
Nästa sida: https://www.webforum.nu/amne/asp/152888-gästbok/page2.md
