Just nu i M3-nätverket
Jump to content

gästbok


sagittarius83

Recommended Posts

sagittarius83

Hej!

 

Jag undrar om man kan få hjälp och tips på hur man kan få tag på en enkel och bra gästbok som man kan ha till hemsidan, gärna en färdig som jag bara modifierar. Jag har hittat en färdig kod med färdiga asp,css och mdb filer, men jag vet inte om det fungerar eller om hur jag ska använda de. Ska man bara länka till asp-filen (istället för vanliga html) och köra? Har provat det (i editorn) men ingenting händer, kanske för att jag fortfarande jobbar offline?!

Skulle varit bra med en enkel guide eller liknande...

 

Jag är ganska nybörjare på att bygga hemsidor.

Bifogar zip fil med den färdiga gästboken

 

Blir mycket tacksam om jag får hjälp.

guestbook.zip

Link to comment
Share on other sites

gastbok.asp

 

Komplett asp-kod, men koden behövs optimeras något.

 

Sedan är inte HTML-koden komplett. Det saknas flera viktiga taggar, body och title som exempel.

 

Jag har fixat till den lite, men mera som exempel på hur en bra struktur kan se ut:

<!-- #include virtual="adovbs.inc" --> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title> Gästboken </title>
 <meta name="generator" content="editplus" />
 <meta name="author" content="" />
 <meta name="keywords" content="" />
 <meta name="description" content="" />
 <link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body>

<% 
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("gastbok.mdb") 
' välj vart du har lagt din databas någonstans

Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT id, namn, epost, inlagg FROM gastbok order by id desc"     
'hämtar endast de fält som behövs.
'listar från gastboks tabellen och sorterar dom efter ID nummret fast baklänges (desc)

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

do until recset.EOF 
%>
<div class="post-<%=recset("id")%> ">
   <p>
	<strong>Namn: </strong><%=recset("namn")%> <br/>
	<strong>Epost: </strong><%=recset("epost")%><br/>
	Inlägg: <br/>
	<%=recset("inlagg")%>
</p>
</div>
<% 
RecSet.MoveNext   ' gör så att nästa rad i tabellen tas nästa gång loopen börjar om
Loop                         ' nu loopas det, hoppar nu tillbaka till do until recset.eof raden här ovan och gör om allt

' nu stänger vi databaen
RecSet.Close
Connect.Close 
Set RecSet = nothing
Set Connect = nothing
%>

<!-- Har har separerat formuläret som skall skata ett nytt inlägg. 
Jag har också strukturerat upp html-markupen -->
<form name="form" method="post" action="gb_spara.asp">
<fieldset>
	<legend>Skriv nytt inlägg</legend>
	<p>
		<label>Namn</label>
		<input name="namn" type="text" id="namn"/>
	</p>
	<p>
		<label>Epost </label>
		<input name="epost" type="text" id="epost">
	</p>
	<p>
		<label>Inlägg</label>
		<textarea name="inlagg" rows="5" id="inlagg"></textarea>
	</p>
	<p>
		<input type="submit" name="Submit" value="Skicka">
	</p>
</fieldset>
</form>

<!-- ev grafik efter gästbokstabellen -->

</body>
</html>

 

Ja, tanken är att du skall länka till gastbok.asp för att se inläggen.

 

 

<!-- #include virtual="adovbs.inc" -->   
<%
namn=Request.Form("namn")   'spara vad som stog i input rutan namn  i kolumnen namn 
epost=Request.Form("epost")  'spara vad som stog i input rutan epost  i kolumnen epost 
inlagg=Request.Form("inlagg") 'spara vad som stog i input rutan inlagg  i kolumnen inlagg 

'här borde du göra någon form av validering för att säkerställa att informationen inte är tom eller innehåller felaktiga tecken
'samt skydda mot SQL-injektioner.
namn = Replace(namn,"'","")
epost = Replace(epost,"'","")
inlagg = Replace(inlagg,"'","")

'om allt går bra gör detta:
If (true) Then
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("gastbok.mdb")

Connect.Execute("INSERT INTO gastbok (namn, epost, inlagg) VALUES ('"&namn&"','"&epost&"','"&inlagg&"')")

Set Connect = nothing
' stänger databasen igen
End If 

Response.redirect "gastbok.asp" 'länkar tillbaka till gastbok.asp
%>

Link to comment
Share on other sites

sagittarius83

gastbok.asp

 

Komplett asp-kod, men koden behövs optimeras något.

 

Sedan är inte HTML-koden komplett. Det saknas flera viktiga taggar, body och title som exempel.

 

Jag har fixat till den lite, men mera som exempel på hur en bra struktur kan se ut:

<!-- #include virtual="adovbs.inc" --> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title> Gästboken </title>
 <meta name="generator" content="editplus" />
 <meta name="author" content="" />
 <meta name="keywords" content="" />
 <meta name="description" content="" />
 <link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body>

<% 
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("gastbok.mdb") 
' välj vart du har lagt din databas någonstans

Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT id, namn, epost, inlagg FROM gastbok order by id desc"     
'hämtar endast de fält som behövs.
'listar från gastboks tabellen och sorterar dom efter ID nummret fast baklänges (desc)

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

do until recset.EOF 
%>
<div class="post-<%=recset("id")%> ">
   <p>
	<strong>Namn: </strong><%=recset("namn")%> <br/>
	<strong>Epost: </strong><%=recset("epost")%><br/>
	Inlägg: <br/>
	<%=recset("inlagg")%>
</p>
</div>
<% 
RecSet.MoveNext   ' gör så att nästa rad i tabellen tas nästa gång loopen börjar om
Loop                         ' nu loopas det, hoppar nu tillbaka till do until recset.eof raden här ovan och gör om allt

' nu stänger vi databaen
RecSet.Close
Connect.Close 
Set RecSet = nothing
Set Connect = nothing
%>

<!-- Har har separerat formuläret som skall skata ett nytt inlägg. 
Jag har också strukturerat upp html-markupen -->
<form name="form" method="post" action="gb_spara.asp">
<fieldset>
	<legend>Skriv nytt inlägg</legend>
	<p>
		<label>Namn</label>
		<input name="namn" type="text" id="namn"/>
	</p>
	<p>
		<label>Epost </label>
		<input name="epost" type="text" id="epost">
	</p>
	<p>
		<label>Inlägg</label>
		<textarea name="inlagg" rows="5" id="inlagg"></textarea>
	</p>
	<p>
		<input type="submit" name="Submit" value="Skicka">
	</p>
</fieldset>
</form>

<!-- ev grafik efter gästbokstabellen -->

</body>
</html>

 

Ja, tanken är att du skall länka till gastbok.asp för att se inläggen.

 

 

<!-- #include virtual="adovbs.inc" -->   
<%
namn=Request.Form("namn")   'spara vad som stog i input rutan namn  i kolumnen namn 
epost=Request.Form("epost")  'spara vad som stog i input rutan epost  i kolumnen epost 
inlagg=Request.Form("inlagg") 'spara vad som stog i input rutan inlagg  i kolumnen inlagg 

'här borde du göra någon form av validering för att säkerställa att informationen inte är tom eller innehåller felaktiga tecken
'samt skydda mot SQL-injektioner.
namn = Replace(namn,"'","")
epost = Replace(epost,"'","")
inlagg = Replace(inlagg,"'","")

'om allt går bra gör detta:
If (true) Then
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("gastbok.mdb")

Connect.Execute("INSERT INTO gastbok (namn, epost, inlagg) VALUES ('"&namn&"','"&epost&"','"&inlagg&"')")

Set Connect = nothing
' stänger databasen igen
End If 

Response.redirect "gastbok.asp" 'länkar tillbaka till gastbok.asp
%>

 

 

 

 

Tack Jonas...

Nu har byggt vidare på din modifierade kod och får nu mer problem. Jag får följande felmedelande:

 

#include virtual="adovbs.inc"

ADODB.Recordset error '800a0bb9'

 

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

 

/html/gastbok.asp, line 11

 

 

Jag provade koden på nätet. Gå in på min hemsida basl.se och klicka på "ggg" till vänster om sidan

Link to comment
Share on other sites

Active Server Pages error 'ASP 0126'

Include file not found

/html/gastbok.asp, line 1

The include file 'adovbs.inc' was not found.

 

Felet säger sig självt. Den försöker hitta filen adovbs.inc som skall ligga i sajtroten, dvs inte i samma katalog som gastbok.asp

Link to comment
Share on other sites

sagittarius83

Active Server Pages error 'ASP 0126'

Include file not found

/html/gastbok.asp, line 1

The include file 'adovbs.inc' was not found.

 

Felet säger sig självt. Den försöker hitta filen adovbs.inc som skall ligga i sajtroten, dvs inte i samma katalog som gastbok.asp

 

Som sagt jag har inte hållit på med asp förut, men error-meddelandet var lite otydlig.

OK...

 

nu har jag flyytat filen till roten, men får ett till error istället:

 

--------------------------------------------------

Microsoft VBScript compilation error '800a0400'

 

Expected statement

 

/html/gastbok.asp, line 28

 

=recset("id")">

^

--------------------------------------------------

 

vad kan det vara för fel på den raden? klagar den på = tecknet?

 

<div class="post-<%=recset("id")">

Link to comment
Share on other sites

sagittarius83

finns id i databasentabellen?

Hämtar du idt i SQL-strängen?

 

hmm, menar du om id finns i gastbok.mdb? isåfall ja, som primärnyckel. Där finns också namn, epost och inlagg.

 

har jag förstått rätt eller är jag ute och cycklar? :lol:

Link to comment
Share on other sites

sagittarius83

Du förstod rätt.

Då är det ngt annat fel.

 

edit: ommendu...

<%=recset("id")%>

dvs ett citattecken för mycket

 

 

Mannen du eeeee grymmast :thumbsup:

 

jag tog bort hela div taggen och la istället <%=recset("id")%>

 

som du föreslog... så bra... Nu är det bara att finslipa :D

 

Tack så HÄMSKT mycket för hjälpen...

 

Ha en trevlig helg

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...