webForumDet fria alternativet

Gästbok

11 svar · 564 visningar · startad av SPiN

SPiNMedlem sedan mars 20007 896 inlägg
#1

Hallå!

Jag tänkte skapa en gästbok med ASP, men när jag satt och knåa kom jag på att sättet jag använde mej av inte funkar...

<%
dim namn, epost, msg

namn = Request.Form("name")
epost = Request.Form("mail")
msg = Request.Form("message")
%>

Eftersom att där jag sedan vill att texten ska placeras skrivs över av nästa inlägg.
Min undran är om det går att lösa på något annat sätt än att skriva till en separat fil med gor_ett_inlagg.asp, sedan läsa av den med gastbok.asp?

------------------
|acey

aMedlem sedan maj 2000755 inlägg
#2

Öhh, använder du en databas eller en textfil för att lagra informationen när folk fyller i din gästbok? koden som sådan är det inget fel på men det krävs ju lite mer för att få till en fungerande gästbok.

SPiNMedlem sedan mars 20007 896 inlägg
#3

Jag e nybörjar yo :)
Sej hur jag ska göra på bästa sätt tack :)

BrimbaMedlem sedan dec. 19995 875 inlägg
#4

Det bästa sättet är helt klart databas anser jag i alla fall, det kanske finns någon där ute som inte håller med mig.

Men gå gärna in på www.idg.se/mikrodatorn/guider och leta upp exemplet om gästbok så kommer du lära dig massor!

Ha det bra!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

SPiNMedlem sedan mars 20007 896 inlägg
#5

Tack för tipset!
Men för att jag skulle förstå vad jag gjorde laddade jag ner deras exempel-filer, men dom funkar inte...
Jag får felmeddelandet
Microsoft OLE DB Provider for ODBC Drivers fel '80004005'

[Microsoft][ODBC Driver Manager] Datakällan hittades inte och ingen standarddrivrutin är angiven

/asp/db_temp/scripts/guestbook.asp, rad 5

ASP-koden i guestbook ser ut som följande:

<% Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "gastbok"
Set Number = Databas.Execute("Select Count(*) As Antal FROM gastbok") %>

Vad är det som är fel? är det något i databasen?

------------------
SPiN, bjowik99@it-gymnasiet.nu

bohlinMedlem sedan mars 2000263 inlägg
#6

Databas.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("gbok.mdb")
ändra gbok.mdb till filnamnet på databasen, så funakr det skitbra!

------------------
/bohlin

SPiNMedlem sedan mars 20007 896 inlägg
#7

Tackar tackar :)

------------------
SPiN, bjowik99@it-gymnasiet.nu

SPiNMedlem sedan mars 20007 896 inlägg
#8

Det funkade bättre nu, man kom till sidan där man skriver in namn o shit... Men sen när man trycker på Skicka-knappen så får jag samma felmeddelande.

Koden på ASP-sidan ser ut så här:

If Len(Trim(Namn)) > 0 AND Len(Trim(Inlagg)) > 0 Then
Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "DSN=gastbok"
SQLStmt = "INSERT INTO Gastbok "
SQLStmt = SQLStmt & "(Namn,  Epost, Inlagg) "
SQLStmt = SQLStmt & "VALUES('" & Namn & "', '" & Epost & "', '" & Inlagg & "'); "
Set Poster = Databas.Execute(SQLStmt)
Databas.Close

Felmeddelandet sejer att det är fel på rad 25, dvs. Databas.Open "DSN=gastbok"

Vad göra??

------------------
SPiN, bjowik99@it-gymnasiet.nu

aMedlem sedan maj 2000755 inlägg
#9

Kolla på inlägget som Bohlin gjorde tidigare, ändra på samma sätt som där:
----snipp----

 Databas.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("gbok.mdb")

ändra gbok.mdb till filnamnet på databasen, så funakr det skitbra!

SPiNMedlem sedan mars 20007 896 inlägg
#10

Tack tack!
Nu har jag kommit längre, dock fastnar jag på sidan där allt ska visas...
Felmeddelandet säger att objektet i mängden inte kunde hittas för att det inte överensstämmer med det begärda namnet eller numret.

I formuläret har jag döpt en textruta till Post, sen på sidan där man ska kunna titta på inläggen har jag koden:

<%
dim email, Databas, Poster

Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("guest.mdb")
Set Poster = Databas.Execute("SELECT *, Format$([datum],'yyyy/mm/dd') AS formdatum FROM gastbok Order by Id desc")

email = Poster("Post")
%>

Det står att det är på rad 8, dvs. email = Poster("Post").
Jag har en mellansida som skickar själva inlägget till databasen, där ser koden ut så här:

<%
dim namnet, eposten, inlagget

namnet=Request.Form("Namn")
eposten=Request.Form("Post")
inlagget=Request.Form("Inlagg")

%>

+ lite till som ser ut så här

<%
dim Databas, Poster

Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("guest.mdb")
SQLStmt = "INSERT INTO Gastbok "
SQLStmt = SQLStmt & "(namn,  epost, inlagg) "
SQLStmt = SQLStmt & "VALUES('" & namnet & "', '" & eposten & "', '" & inlagget & "');"
Set Poster = Databas.Execute(SQLStmt)
Databas.Close
%>

namn, epost, inlagg är kolumner i databasen...

Vad är fel????!

------------------
SPiN, bjowik99@it-gymnasiet.nu

SPike.CoMMedlem sedan dec. 1999149 inlägg
#11

Är det inte lite för omständigt att göra allt i en databas istället när det är mycket enklare att ha all text in en textfil?

Alltså man har 4 filer:
visa.htm, sign.htm, gor_skitet.asp, gastbok.txt

Visa.htm -- Visar Gästbok
Sign.htm -- Skriv in nytt inlägg
Gastbok.txt -- Innehåll av Gästbok
Gor_skitet.asp --
Färgstarkt namnval, men när man skrivit in nytt inlägg ska denna skript göra följande:
{

  1. Öppna gastbok.txt (om den inte finns, skapa den).

1b) Om filen är för stor, ta bort gammla inlägg.

  1. Använd formulärets innehåll att stoppa in i gästboks filen. (Kanske formaterings taggar också).

  2. Skapa en ny visa.htm. Stoppa in innehållet av gastbok.txt till visa.htm.

  3. Stäng allt... så borde det funka.
    }

Ok?

LennyPainMedlem sedan mars 20005 inlägg
#12

Enligt koden på din mellansida så heter fälten i din databas "Id", "namn", "epost" och "inlagg" och du försöker med raden
email = Poster("Post")
läsa i ett fält som heter "Post", med ett felmeddelande som följd. Med andra ord, för att få ut e-mailadressen får du skriva
email = Poster("email")
istället så går det bättre.

135 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)