---
title: "Märks det att jag inte kan nåt...?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/6603-märks-det-att-jag-inte-kan-nåt"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Ghost of North"
published: "2000-09-13T21:59:00.000Z"
updated: "2000-09-15T22:56:00.000Z"
replies: 7
views: 356
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/6603-märks-det-att-jag-inte-kan-nåt"
---

# Märks det att jag inte kan nåt...?

## #1 — Ghost of North, 2000-09-13T21:59Z

Jag har en gästbok i asp och jag tycker att det saknas ett viktigt fält, nämligen det för egen hemsida. 
Posterna sparas i en databas (access). Nu är frågan om någon vänlig själ kan ge mig så enkla instruktioner så att jag klarar av att tillföra detta fält. Mina tidigare asp-kunskaper sträcker sig till att "klippa och klistra" lite i asp. 

Kod:
\<%
Const adOpenKeyset = 1
Const adLockOptimistic = 3

strMode = Request.QueryString("mode")
tempConn = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (\*.mdb)};DBQ=" & Server.MapPath("guestbook.mdb") & ";UID=admin;PWD=;"

If Request.Form("Gem") \<\> "" Then
	strError = ""
	strNavn = Trim(Request.Form("Navn"))
	strEmail = Trim(Request.Form("Email"))
	strKommentar = Trim(Request.Form("Kommentar"))
	If Len(strNavn) = 0 Then
		strError = "\<font color=0000FF\>\<li\>Du har glömt att skriva namn!\</li\>\</font\>"
	ElseIf validateEmail(strEmail) = False Then
		strError = "\<font color=0000FF\>\<li\>Din e-mail adress behövs!\</li\>\</font\>"
	ElseIf Len(strKommentar) = 0 Then
		strError = "\<font color=0000FF\>\<li\>Kommentar är ett måste!\</li\>\</font\>"
	End If
	If Len(strError) = 0 Then
		Set rs = Server.CreateObject("ADODB.RecordSet")
		strSQL = "SELECT \* FROM Guestbook WHERE (ID = 0)"
		rs.Open strSQL, tempConn, adOpenKeyset, adLockOptimistic
		If (rs.BOF Or rs.EOF) Then
			rs.AddNew
			rs("Navn") = Server.HTMLEncode(strNavn)
			rs("Email") = Server.HTMLEncode(strEmail)
			rs("Kommentar") = Server.HTMLEncode(strKommentar)
			rs("Dato") = Now()
			rs.Update
		End If
		rs.Close
		Set rs = Nothing
	Else
		strError = "\<p\>\<ul\>\<font color=ffffff\>" & strError & "\</font\>\</ul\>\</p\>"
		strMode = "add"
	End If
End If
%\>
\<html\>

\<head\>
\<title\>Gästboken\</title\>
\<link rel="stylesheet" type="text/css" href="style.css"\>
\</head\>

\<body style="background-image: url('images/clearday/cdbkgnd.jpg'); background-repeat: repeat; background-attachment: fixed; background-position: center top"\>

  \<center\>
  \<div align="center"\>
    \<table border="0" width="600" cellspacing="0" cellpadding="3" height="548"\>
    \<tr\>
      \<td width="600" height="128"\>\<p align="center"\>\<br\>
        \<img border="0" src="images/gastbok-rubrik.gif"\>
        \<br\>
        \<br\>
        \<br\>
        \<font face="verdana" size="2"\>\<strong\>
      \<img border="0" src="images/clearday/cdrule.gif"\>\</strong\>\</font\>\</td\>
    \</tr\>
    \<tr\>
      \<td width="600" height="381"\>
\<%
Select Case strMode
Case "add"
%\>
  \</center\>
\<form method="POST" action="guestbook.asp"\>
\<table border="0" width="600" cellspacing="0" cellpadding="2"\>
        \<tr\>
          \<td align="center" width="600"\>\<font face="verdana" size="2"\>\<strong\>
      \<p align="left"\>
	  \<%=strError%\>\</strong\>\</font\>\</td\>
        \</tr\>
        \<tr\>
          \<td valign="middle" align="center" class="text" width="600"\>\<div align="right"\>\<p class="text" align="center"\>\<br\>
              Namn:\<br\>
              \<input type="text" name="Navn" size="40" value="\<%=strNavn%\>"\>\<br\>
              \<br\>
              E-mail:\<br\>
              \<input type="text" name="Email" size="40" value="\<%=strEmail%\>"\>\<br\>
              \<br\>
              Kommentar:\<br\>
              \<textarea rows="3" name="Kommentar" cols="40"\>\<%=strKommentar%\>\</textarea\>\<br\>
              \<br\>
              \<input type="submit" value="Skicka" name="Gem"\>\<input type="button" value="Ångra" name="Annuller" onClick="javascript:location.href='guestbook.asp'"\>
            \</div\>
            \<div align="right"\>\<p class="text" align="center"\>\<img border="0" src="images/clearday/cdrule.gif"\>
            \</div\>
          \</td\>
        \</tr\>
        \<tr\>
          \<td valign="middle" align="center" class="text" width="600"\>
        
          \</td\>
  
        \</tr\>
  
      \</table\>
\</form\>
\<center\>

\<%
Case Else
	strAddLine = "\<p\>\<img src=images/add.gif width=16 height=16\>&nbsp;\<a href=guestbook.asp?mode=add\>\<strong\>\<font face=verdana size=2\>Skriv inlägg i gästboken\</font\>\</strong\>\</a\>\</p\>"
	Response.Write strAddLine
	strSQL = "SELECT \* FROM Guestbook ORDER BY Dato DESC;"
	Set myConn = Server.CreateObject("ADODB.Connection")
	myConn.Open tempConn
	Set rs = myConn.Execute(strSQL)
	If Not (rs.BOF Or rs.EOF) Then
		Response.Write "\<table width=600 border=0 cellpadding=1 cellspacing=1\>"
		Do While Not rs.EOF
			dtmDato = rs("Dato")
			dtmDato = FormatDateTime(dtmDato,vbLongDate) & " kl. " & FormatDateTime(dtmDato,vbLongTime)
			Response.Write "\<tr bgcolor=#99ccff\>\<td width=""600""\>\<font face=verdana size=2 color=#0000ff\>" & dtmDato & "\</td\>\</tr\>"
			If Len(rs("Email")) \> 0 Then
				Response.Write "\<tr\>\<td\>\<font face=verdana size=2\>\<strong\>\<a href=mailto:" & rs("Email") & "\>" & rs("Navn") & "\</a\> skriver:\</strong\>\</td\>\</tr\>"
			Else
				Response.Write "\<tr\>\<td\>\<font face=verdana size=2\>\<strong\>" & rs("Navn") & " skriver:\</strong\>\</td\>\</tr\>"
			End If
			Response.Write "\<tr\>\<td\>\<font face=verdana size=2\>" & rs("Kommentar") & "\<br\>&nbsp;\</td\>\</tr\>"
			rs.MoveNext
		Loop
		Response.Write "\</table\>"
	Else
		Response.Write "\<p\>\<font face=verdana size=2\>Inget inlägg i gästboken !\</font\>\</p\>"
	End If
	myConn.Close
	Set myConn = Nothing
	Response.Write strAddLine
End Select
%\>
      \</center\>
 \</tr\>
    \<tr align="center"\>
      \<td width="600" height="21"\>
        \<p class="text-copy" align="center"\>\</td\>
    \</tr\>
  \</table\>
    \</div\>
\</body\>
\</html\>
\<script language="VBScript" runat="Server"\>
Function validateEmail(strEmail)
	validateEmail = True
	If Len(strEmail) \< 6 Then
		validateEmail = False
	End If
	If InStr(1, strEmail, "@", 1) \< 2 Then
		validateEmail = False
	End If
	If InStr(1, strEmail, ".", 1) = 0 Then
		validateEmail = False
	End If
	pos = InStr(1, strEmail, "@", 1)
	If pos \< 2 Then
		validateEmail = False
			Else
		pos = InStr(pos+1, strEmail, "@")
		If pos \> 0 Then
			validateEmail = False
		End If
	End If
End Function
\</script\>

Posterna i databasen heter givetvis:
ID
Dato
Navn
Email
Kommentar

Det är antagligen ganska enkelt att lägga till ett extra fält, men hitills så har jag inte lyckats på egen hand.

Förhoppningsfull :)

\[Redigerat av Ghost of North den 14 sep 2000\]

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

## #2 — Vide, 2000-09-13T22:11Z

Det (antar jag) är fyra ställen du behöver ändra... först måste du lägga till ett fält för hemsidesträngen i databasen, sedan så måste du lägga till ett formulärsfält där du matar in hemsidan, sedan så måste du hämta ifrån fältet där du visar alla inlägg och till sist så måste du ändra i din SQL-sträng (den som visar vad som skall in i databasen efter postningen ifrån formuläret)...

Det är kanske den sista som kan vara problem om man inte kan ASP... men sök reda på den strängen efter det att du har ändrat dom andra tre grejorna så skall vi se vad som skall ändras där... :)

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

## #3 — Ghost of North, 2000-09-13T22:48Z

Nu tror jag att jag har lyckats ändra 3 av de 4 punkterna du skrev om. Återstår SQL:en... Koden finns numera i mitt tidigare inlägg.  :)

Vill gärna ha hemsideslänken efter mail/namn-länken...

Och hur får jag den att inte skriva ut en obefintlig länk?

\[Redigerat av Ghost of North den 14 sep 2000\]

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

## #4 — Vide, 2000-09-14T07:05Z

Okej, för att skapa ett fält i databasen:

Öppna din tabell, växla till designläge (den lilla rutan längst till vänster), skriv in ett nytt namn på en ny post, och välj sedan datatypen 'text' med säg 75 tecken... spara sedan tabellen...

återkommer strax... fick just ett möte...

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

## #5 — Ghost of North, 2000-09-15T15:21Z

Jag har skapat en ny kolumn i databasen och en inmatningsruta i gästboken till hemsidesadresserna. (Jag hade mycket tur vill jag lova som klarade av det... :) ).
Jag har även filat till SQL:en så att den verkar spara resultaten (jag är förvånad...).
Problemet nu är att alla hemsideslänkarna kommer i formen <http://foo/osv...> 
Hur får jag bort det???

Kod:
\----------------------------------------
\<%
Case Else
	strAddLine = "\<p\>\<img src=images/add.gif width=16 height=16\> \<a href=guestbook.asp?mode=add\>\<strong\>\<font face=verdana size=2\>Skriv inlägg i gästboken\</font\>\</strong\>\</a\>\</p\>"
	Response.Write strAddLine
	strSQL = "SELECT \* FROM Guestbook ORDER BY Dato DESC;"
	Set myConn = Server.CreateObject("ADODB.Connection")
	myConn.Open tempConn
	Set rs = myConn.Execute(strSQL)
	If Not (rs.BOF Or rs.EOF) Then
		Response.Write "\<table width=600 border=0 cellpadding=1 cellspacing=1\>"
		Do While Not rs.EOF
			dtmDato = rs("Dato")
			dtmDato = FormatDateTime(dtmDato,vbLongDate) & " kl. " & FormatDateTime(dtmDato,vbLongTime)
			Response.Write "\<tr bgcolor=#99ccff\>\<td width=""600""\>\<font face=verdana size=2 color=#0000ff\>" & dtmDato & "\</td\>\</tr\>"
			If Len(rs("Email")) \> 0 Then
				Response.Write "\<tr\>\<td\>\<font face=verdana size=2\>\<strong\>\<a href=mailto:" & rs("Email") & "\>" & rs("Navn") & "\</a\>\</strong\> \<a href=" & rs("Hemsida") & "\>" & rs("Hemsida") & "\</a\>\<strong\> skriver:\</strong\>\</center\>\</td\>\</tr\>"
				
			Else
				Response.Write "\<tr\>\<td\>\<font face=verdana size=2\>\<strong\>" & rs("Navn") & rs("Hemsida") & " skriver:\</strong\>\</td\>\</tr\>"
			End If
			Response.Write "\<tr\>\<td\>\<font face=verdana size=2\>" & rs("Kommentar") & "\<br\> \</td\>\</tr\>"
			rs.MoveNext
		Loop
		Response.Write "\</table\>"
	Else
		Response.Write "\<p\>\<font face=verdana size=2\>Inget inlägg i gästboken !\</font\>\</p\>"
	End If
	myConn.Close
	Set myConn = Nothing
	Response.Write strAddLine
End Select
%\>
\----------------------------------------

\[Redigerat av Ghost of North den 15 sep 2000\]

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

## #6 — Ghost of North, 2000-09-15T21:42Z

Nu har jag efter mycket påtande lyckats med en hel del av det jag föresatt mig.
MEN: När min asp-sida hämtar länkarna från databasen lägger den hela tiden till den plats på nätet man befinner sig före själva länken typ: hhtp://min webplats/stället den ska länka till.
Texten i databasen verkar stämma (www.osv...)
Snälla, hur ska jag få bort detta?
Jag blir snart knäpp på det. Förklara gärna varför det blir så också så jag kan undvika detta i framtiden...

Länk-kod:

If Len(rs("Hemsida")) \> 0 Then
				Response.Write "\<tr\>\<td\>\<font face=verdana size=2\>\<strong\>Hemsida: \<a href=" & rs("Hemsida") & "\>" & rs("Hemsida") & "\</a\>\</strong\>\<br\>\<br\>"
			End If

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

## #7 — Vide, 2000-09-15T22:42Z

Då får du göra något sånthär:

```
If Len(rs("Hemsida")) > 0 Then
hemsa = rs("Hemsida")
If left(hemsa,4) <> "http" then
	hemsa = "http://" & hemsa
End If
Response.Write "<tr><td><font face=verdana size=2><strong>Hemsida: <a href=" & hemsa & ">" & rs("Hemsida") & "</a></strong><br><br>"
End If
```

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

## #8 — Ghost of North, 2000-09-15T22:56Z

Tack så mycket för hjälpen :\>

Jag vill oxå passa på att skriva att det här är det trevligaste forum jag någonsin varit på! Jag har läst en massa inlägg och frågor och inte träffat på ett enda som ens varit på gränsen till otrevligt. :\>

Jag kanske vågar lägga min ringa hemsida under granskning här när den är lite mer klar... :)

Mvh 
  Ghost of North

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/6603-märks-det-att-jag-inte-kan-nåt
