---
title: "Problem med ett enkelt gästboksscript som lever sitt egna liv!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/183354-problem-med-ett-enkelt-gästboksscript-som-lever-sitt-egna-liv"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Anton_L"
published: "2010-04-29T14:10:35.000Z"
updated: "2010-05-02T06:44:05.000Z"
replies: 9
views: 853
page: 1
pages: 1
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/183354-problem-med-ett-enkelt-gästboksscript-som-lever-sitt-egna-liv"
---

# Problem med ett enkelt gästboksscript som lever sitt egna liv!

## #1 — Anton_L, 2010-04-29T14:10Z

Hej!

Sitter och pillar lite med ASP och försöker lära mig. Har med hjälp av lite exempel knåpat ihop en mycket enkelt minitwitter/gästbok . Mitt problem är att varje gång jag laddar om sidan (F5) så postas en tom rad i databasen, vilket ju även syns i gästboken. Min förhoppning är att någon som är lite haj på detta enkelt kan se vad jag har skrivit fel. Är som tidigare nämt ganska så färsk på detta, så jag ber om ursäkt för den taskiga kod ni säkert lär finna  :r

```
<%
	' KOD FÖR ATT ÖPPNA ANSLUTNING TILL DATABAS
	Set Connect = server.createobject("ADODB.Connection")
	Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("/07/inloggning/data/users.mdb")
%>

<%
' KOD FÖR ATT LÄGGA TILL INLÄGG
	'Skapar en plats för mellanlagring av data.
	Set RecSetet = Server.CreateObject("ADODB.Recordset")
	'Sql-satsen som ska hantera data.
	laggtill = "SELECT * FROM twdata"
	'Begränsar samtidig användning av databas.
	RecSetet.Open laggtill, Connect, adOpenStatic, adLockOptimistic
	'Lägg till ny post i databasen.
	RecSetet.AddNew
	'Hämta data från formuläret för nya poster.
	RecSetet("Namn") = Request.Form("namn")
	RecSetet("Kommentar") = Request.Form("kommentar")
	'Uppdatera databasen.
	RecSetet.Update
	'Stäng Recset
	RecSetet.Close
%>

<!-- SKRIVA INLÄGG START -->
		<div id="center">
			<div id="logga"></div>
			<div id="twittBox">
				<form method="post" action="produktbloggen.asp">
					<input type="text" name="namn" size="15">
					<input type="submit" value="twittra"><br>
					<textarea rows="3" cols="112" name="kommentar"></textarea><br>
				</form>
			</div>
			<div id="mitt">
<!-- SKRIVA INLÄGG SLUT -->

<!-- SKRIVA UT INLÄGGG FRÅN DATABAS START -->
		<%
			'Sql-satsen som ska hantera data.
			SQLanrop = "Select * From twdata"
			'Kör Sql-satsen
			Set sqlfraga = Connect.Execute(SQLanrop)
			'Fortsätt tills sista raden är nått i databasen
			Do Until sqlfraga.EOF
			'Skriv ut infon från databasen i filen
			Response.write "<table width='450'><tr><td width='150'>" & date & " - " & sqlfraga("Namn") & "</td><td width='300'>" & sqlfraga("Kommentar") & "<a href='" &"'> Radera</a></td>"
			'Hoppa vidare till nästa inlägg
			sqlfraga.MoveNext
			'Börja om från början med att leta efter rader i databasen
			Loop

		%>
		

			</div>
		</div>

</div>
<!-- SKRIVA UT INLÄGGG FRÅN DATABAS SLUT -->
```

 
Tack på förhand   :moose

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

## #2 — @nders, 2010-04-29T17:46Z

Frågan verkar handla om klassisk asp, så jag flyttar tråden från ASP.NET.

\- - - - - 

Det "gamla vanliga" sättet att lösa dylika problem är att lägga in en if-sats så att det bara sätts in i databasen om man verkligen postat något - och efter insättningen i databasen skicka iväg användaren till en annan sida (eller i detta fall samma sida). 

Mina tillägg i fet stil nedan:

```
<%
	' KOD FÖR ATT ÖPPNA ANSLUTNING TILL DATABAS
	Set Connect = server.createobject("ADODB.Connection")
	Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("/07/inloggning/data/users.mdb")
%>

<%
[b]if request.form("kommentar") <> "" then[/b]
' KOD FÖR ATT LÄGGA TILL INLÄGG
	'Skapar en plats för mellanlagring av data.
	Set RecSetet = Server.CreateObject("ADODB.Recordset")
	'Sql-satsen som ska hantera data.
	laggtill = "SELECT * FROM twdata"
	'Begränsar samtidig användning av databas.
	RecSetet.Open laggtill, Connect, adOpenStatic, adLockOptimistic
	'Lägg till ny post i databasen.
	RecSetet.AddNew
	'Hämta data från formuläret för nya poster.
	RecSetet("Namn") = Request.Form("namn")
	RecSetet("Kommentar") = Request.Form("kommentar")
	'Uppdatera databasen.
	RecSetet.Update
	'Stäng Recset
	RecSetet.Close
	[b]Response.redirect "denna_sida.asp"
end if[/b]
%>

<!-- SKRIVA INLÄGG START -->
		<div id="center">
			<div id="logga"></div>
			<div id="twittBox">
				<form method="post" action="produktbloggen.asp">
					<input type="text" name="namn" size="15">
					<input type="submit" value="twittra"><br>
					<textarea rows="3" cols="112" name="kommentar"></textarea><br>
				</form>
			</div>
			<div id="mitt">
<!-- SKRIVA INLÄGG SLUT -->

<!-- SKRIVA UT INLÄGGG FRÅN DATABAS START -->
		<%
			'Sql-satsen som ska hantera data.
			SQLanrop = "Select * From twdata"
			'Kör Sql-satsen
			Set sqlfraga = Connect.Execute(SQLanrop)
			'Fortsätt tills sista raden är nått i databasen
			Do Until sqlfraga.EOF
			'Skriv ut infon från databasen i filen
			Response.write "<table width='450'><tr><td width='150'>" & date & " - " & sqlfraga("Namn") & "</td><td width='300'>" & sqlfraga("Kommentar") & "<a href='" &"'> Radera</a></td>"
			'Hoppa vidare till nästa inlägg
			sqlfraga.MoveNext
			'Börja om från början med att leta efter rader i databasen
			Loop

		%>
		

			</div>
		</div>

</div>
<!-- SKRIVA UT INLÄGGG FRÅN DATABAS SLUT -->
```

Mvh

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

## #3 — Anton_L, 2010-04-30T08:34Z

Hej!

Först och främst, ledsen för felposten och tack för flytten!
Tänkt vad enkel lösningen var, jag hade låst mig helt på att jag hade kodad något lustigt som gjorde att det auto-posta. Funkar klockrent nu :)
Bör man gå direkt på .NET som nybörjare, eller ska man lära sig klassisk ASP någorlunda bra först?

Anton

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

## #4 — @nders, 2010-04-30T09:13Z

> Först och främst, ledsen för felposten och tack för flytten!

No probs, det är lätt hänt.  :)

> Bör man gå direkt på .NET som nybörjare, eller ska man lära sig klassisk ASP någorlunda bra först?

Jag tycker att du ska gå rätt på .NET, även om tröskeln kanske är lite högre. Gamla ASP är dött, utvecklas inte längre och har så inte gjorts på många år.

.NET (eller någon annan teknik som lever) är bäst att sikta in sig på - om man nu ändå ska välja vad man ska lära sig.  :)

Mvh

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

## #5 — Anton_L, 2010-05-01T16:23Z

Hej,

ASP och ASP.NET har inte sådana likheter att jag kommer ha nytta av mina grundläggande ASP kunskaper? Är inte .NET bara en utökning, eller är det ett helt annorlunda språk?

Sen så skrev jag om lite av koden och tänkte använda querystrings till att kunna radera GB-inlägg. Får nu följande fel på följande kod:  x(

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Syntaxfel (operator saknas) i frågeuttrycket 'ID ='.

```
<%

    Set uppsattning = Server.CreateObject("ADODB.Recordset")
    bort = "SELECT * FROM twdata WHERE ID = " & Request.QueryString("delID") & " "

    uppsattning.Open bort, Connect, adOpenStatic, adLockOptimistic 

    uppsattning.Delete

	uppsattning.Close
%>
```

```
<% Set sqlfraga = Server.CreateObject("ADODB.Recordset")
   Radera = "SELECT * FROM twdata ORDER BY ID"
   sqlfraga.Open Radera, Connect, adOpenStatic, adLockOptimistic 
%>

<%	Do Until sqlfraga.EOF %>
	
	<% =sqlfraga("Namn") %>&nbsp;<b><% =sqlfraga("Kommentar") %></b>
	<a href="produktbloggen.asp?delID=<% =sqlfraga("ID") %>">Radera</a>
<%	sqlfraga.MoveNext
	Loop
	sqlfraga.Close 
%>
```

Kan du se även här vad jag gjort fel fel?   :q

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

## #6 — budg1e, 2010-05-01T17:13Z

Ser ut som du använder kod från IDG´s Lektion 41 (Radera information) 
<http://iwtjanster.idg.se/webbstudio/pub/artikel.asp?id=119>

De använder 2 filer för att radera från databasen, default.asp som listar posterna och tabort.asp som utför raderingen av post.

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

## #7 — Anton_L, 2010-05-01T18:07Z

Hej!

Helt korrekt, använder deras guide för att lära mig! Försöker nu bygga ihop flera exempel till en sida. Det är inget jag ska använda till något, utan hel och hållet bara en del i inlärningen. Kan du nu ev. hjälpa till med koden? 

Tack :)
Anton

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

## #8 — Compusa, 2010-05-01T18:45Z

Nej, .NET är inte en utökning! .NET är ett helt "nytt" (nytt i förhållande till klassisk ASP) ramverk för att skapa applikationer. ASP.NET en av delarna i detta ramverk för att skapa webbsidor.

En början, för att läsa lite om vad .NET är...
<http://sv.wikipedia.org/wiki/.NET_Framework> (svenska)
<http://en.wikipedia.org/wiki/.NET_Framework> (engelska, mer utförlig än den svenska) 

ASP.NET "video-tutorials":
<http://www.asp.net/LEARN/videos/>

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

## #9 — Anton_L, 2010-05-01T19:15Z

Okej, tack för infon där! Betyder detta att man inte har nytta av det man lär sig i klassisk ASP i ASP.NET? :)
Tillbaka topic, koden till att ta bort inlägg, är det något fel ni med lite större erfarenhet finner där?

Anton

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

## #10 — budg1e, 2010-05-02T06:44Z

Om du ska ha koden i samma fil måste du se till att koden som raderar från databasen endast körs när någon klickar på länken radera.

```
<%
[B]if Request.Querystring("q")="radera" then[/B]    
Set uppsattning = Server.CreateObject("ADODB.Recordset")
    bort = "SELECT * FROM twdata WHERE ID = " & Request.QueryString("delID") & " "

    uppsattning.Open bort, Connect, adOpenStatic, adLockOptimistic 

    uppsattning.Delete

	uppsattning.Close
[B]EndIf[/B]
%>
```

```
<% Set sqlfraga = Server.CreateObject("ADODB.Recordset")
   Radera = "SELECT * FROM twdata ORDER BY ID"
   sqlfraga.Open Radera, Connect, adOpenStatic, adLockOptimistic 
%>

<%	Do Until sqlfraga.EOF %>
	
	<% =sqlfraga("Namn") %>&nbsp;<b><% =sqlfraga("Kommentar") %></b>
	<a href="produktbloggen.asp?delID=<% =sqlfraga("ID") %>[B]&q=radera[/B]">Radera</a>
<%	sqlfraga.MoveNext
	Loop
	sqlfraga.Close 
%>
```

Ändringar i fetstilt

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/183354-problem-med-ett-enkelt-gästboksscript-som-lever-sitt-egna-liv
