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.
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>
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... :)
Ö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...
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
%>
----------------------------------------
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
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
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
265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849