|
| Kommentar mulighed Fra : Tommy |
Dato : 13-01-03 18:21 |
|
Hej NG
Jeg har før fået kanon hjælp så jeg prøver igen
På en af de sider jeg har kunne jeg tænke mig at give brugeren en mulighed
for at komme med en kommentar til det de ser. Det skulle være lidt i stil
med en "gæstebog" jeg har set at det er masser a forskellige "gratis"
gæstebøger på nettet men det var ikke lige det jeg havde tænkt mig. Det
skulle helst kunne afvikles på mit webhotel (jirty).
Er den mon nogen der har et eksempel eller ved hvor er er ?
På forhånd tak
--
Tommy
| |
Jakob Andersen (13-01-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 13-01-03 18:43 |
|
"Tommy" <info@manniken.dk> wrote
> På en af de sider jeg har kunne jeg tænke mig at give brugeren en mulighed
> for at komme med en kommentar til det de ser.
Du laver blot en tabel i din database som indeholder f.eks.:
Kommentar
Navn
(evt. en indikation af hvilken side det er da du så kan bruge samme tabel
til kommentarer på flere sider)
Og herefter laver du nederst på din sider en formular med de samme felter
som poster til en side der indsætter dataene i tabellen.
Under formularen laver du et udtræk der henter alle kommentarerne til
artiklen og viser dem.
Så simpelt er det, sig til hvis du har brug for mere hjælp til nogle af
punkterne.
--
Jakob Andersen
| |
Tommy (13-01-2003)
| Kommentar Fra : Tommy |
Dato : 13-01-03 21:35 |
|
>
> Så simpelt er det, sig til hvis du har brug for mere hjælp til nogle af
> punkterne.
>
> --
> Jakob Andersen
Jo tak. Det gør jeg så . Det lyder jo som om det kan lade sige gøre. Men jeg
kan nok lave en form der virker og jeg kan også få vist på en side hvad der
bliver indtastet i formen men hvordan jeg forbinder det med databasen ved
jeg ikke. Så hjælp til det ville være meget fint. Jeg kunne tænke mig at
have felterne; navn, email, site og selfølgelig, kommentar. Er det muligt at
lave en indtastet email adresse til et aktivt link ? Jeg vil blive utrolig
glad om jeg kan få det til at virke .
Tommy
| |
Tommy (14-01-2003)
| Kommentar Fra : Tommy |
Dato : 14-01-03 16:15 |
|
Nu er jeg på tynd is . Jeg har forsøgt mig med først at læse fra databasen
men det går ikke. Jeg mener selv jeg har angivet det den brokker sig over
men det har jeg sikkert ikke. Jeg vil være meget taknemlig for lidt hjælp ;
Jeg får følgende fejlmeddelse ;
a.. Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Datakildenavnet blev ikke fundet, og der er
ikke angivet en standarddriver.
/database1.asp, line 14
Her er min kode
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!--#include virtual= "/adovbs.inc"-->
<title>Database test</title>
</head>
<body>
<%
Dim objConn
Set objConn = Server.CreateObject ("ADODB.Connection")
objConn.ConnectionString="DRIVER ={ Microsoft Access Driver (*.mdb)};" &
"DBQ=D:\Dokumenter\comments.mdb"
objConn. Open
Dim objRS
Set objRS = Server.CreateObject ("ADODB.Recordset")
objRS.Open "comments", objConn, , , adCmdTable
Do While Not objRS.EOF
Response.Write"<B>" & objRS("Name") & "</B><BR>"
Response.Write objRS("Email") & "<BR>"
Response.Write objRS("Url") & " <BR>"
Response.Write objRS("Comment") & "<BR>"
objRS.MoveNext
Loop
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
</body>
</html>
På forhånd tak
Tommy
| |
Jakob Andersen (14-01-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 14-01-03 17:16 |
|
"Tommy" <info@manniken.dk> wrote
> Jo tak. Det gør jeg så . Det lyder jo som om det kan lade sige gøre. Men
jeg
> kan nok lave en form der virker og jeg kan også få vist på en side hvad
der
> bliver indtastet i formen men hvordan jeg forbinder det med databasen ved
> jeg ikke.
Lad os sige at du i din database har en tabel med navnet kommentarer med
følgende felter:
Navn | Email | Site | Kommentar
Du skal så et eller andet sted vise dataene, dette kan du gøre vha. noget
ala nedenstående:
<%
'Vi laver en forbindelse til access databasen
Dim objConn
Set objConn = Server.CreateObject( "ADODB.Connection" )
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\sti\til\din\database.mdb"
objConn.Open()
'Vi hiver data ud i et recordset
Set objRS = objConn.Execute( "SELECT Navn, Email, Kommentar FROM
kommentarer WHERE Site = 'den side vi er på'" )
'Vi løber igennem dataene og udskriver kommentarerne
Do while Not objRS.EOF
Response.Write( "Kommentar skrevet af <a href="mailto:" &
Trim(objRS( "Email" )) & ">" & objRS( "Navn" ) & "</a>:<br />" )
Response.Write( objRS( "Kommentar" ) & "<br /><hr /><br />")
objRS.Movenext
Loop
'Vi rydder op i objekter
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
Mht. indsættelsen i databasen laver du blot din formular ala nedenstående:
<form method="post" action="indsaetkommentar.asp">
<input type="hidden" name="Site" value="<siden vi er på>" />
Navn: <input type="text" name="Navn" /><br />
Email: <input type="text" name="Email" /><br />
Kommentar: <textarea name="Kommentar"></textarea><br />
<input type="submit" value="Opret kommentar" /><br />
</form>
På siden indsaetkommentar.asp laver du så følgende kode:
<%
'Vi laver en forbindelse til access databasen
'(dette kan du evt. ligge i en inkludefil så det kun skal ændres et
sted)
Dim objConn
Set objConn = Server.CreateObject( "ADODB.Connection" )
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\sti\til\din\database.mdb"
objConn.Open()
'Vi bruger SQL's insert kommando til at indsætte dataene i databasen
objConn.Execute( "INSERT INTO kommentarer( Navn, Email, Site,
Kommentar ) VALUES( '" & Replace( Request.Form( "Navn" ) & "", "'", "''" ) &
"','" & Replace( Request.Form( "Email" ) & "", "'", "''" ) & "', '" &
Replace( Request.Form( "Site" ) & "", "'", "''" ) & "' Replace(
Server.HTMLEncode(Request.Form( "Kommentar" )) & "", "'", "''" ) & "' )" )
'Vi rydder op i objekter
objConn.Close
Set objConn = Nothing
%>
Ovenstående er ikke testet, og du skal passe på knækkede linier.
--
Jakob Andersen
| |
Tommy (14-01-2003)
| Kommentar Fra : Tommy |
Dato : 14-01-03 18:08 |
|
Jacob
Tusind tak . Jeg er igang . Vender tilbage når jeg har prøvet. Det er vildt
spændende.
Tommy
| |
Tommy (14-01-2003)
| Kommentar Fra : Tommy |
Dato : 14-01-03 18:48 |
|
OK Jeg kom et stykke af vejen. Jeg er der næsten for læsedelen Men jeg
får følgende fejl;
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EE)
Tegnet ')' var ventet
/database2.asp, line 18, column 43
Response.Write("Comment written by<a href="mailto:"&
Trim(objRS("Email"))&">"& objRS("Name")& "</a>:<br/>")
På forhånd tak
Tommy
PS man kan blive helt grebet af det her !
| |
Jakob Andersen (14-01-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 14-01-03 19:03 |
|
"Tommy" <info@manniken.dk> wrote
> Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EE)
> Tegnet ')' var ventet
> /database2.asp, line 18, column 43
> Response.Write("Comment written by<a href="mailto:"&
> Trim(objRS("Email"))&">"& objRS("Name")& "</a>:<br/>")
Når man bruger Response.Write( "tekst" ) kan man i teksten ikke benytte
"-tegnet da VBScript fortolkeren tror at strengen slutter, derfor skal man
"escape" disse og dette gøres i VBScript ved at skrive " foran altså skal
din Response.Write linie se sådan her ud:
Response.Write("Comment written by<a href=""mailto:"& Trim(objRS("Email")) &
""">" & objRS("Name") & "</a>:<br/>")
--
Jakob Andersen
| |
Tommy (14-01-2003)
| Kommentar Fra : Tommy |
Dato : 14-01-03 21:34 |
|
Tak igen Jacob. Det er rart med en forklaring man kan lære noget af, nu
gælder det bare om at huske den ! Jeg blev så opslugt af dette at jeg nær
havde glemt et møde her til aften.
Tommy
| |
Tommy (14-01-2003)
| Kommentar Fra : Tommy |
Dato : 14-01-03 22:06 |
|
Ja se nu er den gal igen, jeg håber at lære noget mere.
Her er min fejl
a.. Fejltype:
Microsoft JET Database Engine (0x80040E10)
Der er ikke angivet nogen værdi for en eller flere krævede parametre.
/database2.asp, line 16
Her er min linie 16, har jeg misforstået Site=den side vi er på ?
Set objRS=objConn.Execute("SELECT Name,Email,Url,Comment FROM comments WHERE
Site='database2.asp'")
På forhånd tak
Tommy
| |
Jakob Andersen (14-01-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 14-01-03 22:43 |
|
"Tommy" <info@manniken.dk> wrote
> Ja se nu er den gal igen, jeg håber at lære noget mere.
>
> Her er min fejl
>
> a.. Fejltype:
> Microsoft JET Database Engine (0x80040E10)
> Der er ikke angivet nogen værdi for en eller flere krævede parametre.
> /database2.asp, line 16
Denne fejl skyldes oftest at du enten prøver at bruge tekst i en tal
kolonne(der skal ' uden om tekst, ikke uden om tal) en anden mulighed er
fordi du har stavet et af feltnavnene eller tabelnavnene forkert, så prøv
lige at tjekke igen.
Udover ovenstående er mit enenste forslag at det kan være at feltnavnet Name
er et reserveret ord, et reserveret ord er et ord som systemet bruger f.eks.
er SELECT, FROM og WHERE reserverede ord. For at gøre databasen opmærksom på
dette kan man omgive navnene med firkanter altså så du skriver [Name]
istedet for Name.
Så:
1. Tjek for stavefejl
2. Tjek for datatyper streng vs. tal
3. Tjek for reserverede ord
--
Jakob Andersen
| |
Tommy (15-01-2003)
| Kommentar Fra : Tommy |
Dato : 15-01-03 20:01 |
|
Jacob
Tusind tak for hjælpen , nu køre det !
Tommy
| |
Jakob Andersen (15-01-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 15-01-03 22:45 |
|
"Tommy" <info@manniken.dk> wrote
> Tusind tak for hjælpen , nu køre det !
Det var så lidt, må vi se det i aktion?
--
Jakob Andersen
| |
|
|