Klockan :
 ASP, Applikationer - Skapa en enkel Chatt 2002-05-15 19:04:55 
 Information om författaren :
Namn : Jimmy Staff
Epost : admin@aspwebb.com
Hemsida : http://www.aspwebb.com
Presentation :
Ansvarig på ASPWebb!
 Meny :
Startsidan (www.aspwebb.com)
Artikelarkivet
Föregående sida
Utskriftsvänlig sida
Kommentera artikel

ASP, Applikationer - Skapa en enkel Chatt

Skapa en enkel chatt!

I denna övning ska vi skapa en enkel chatt som använder sig utav en databas.

För att förstå denna övning bör du ha goda kunskaper i RecordSet, SQL-kod, If-satser, Access, Querystring och HTML.

 

Sidan består utav följande sidor : Index.asp, Top.asp, Spara.asp och Visa.asp.

Index.asp - Visar ett ramverk för att kunna dela på formuläret och meddelandena i chatten.

Top.asp - Innehåller formuläret för att skriva nya meddelanden.

Spara.asp - Tar emot formuläret med det nya meddelandet och sparar det i databasen.

Chatt.asp - Den nedersta rutan på sidan som visar inläggen.

och en databas vid namn chatt.mdb.

 

Vi börjar med att skapa databasen :

Skapa en tabell med namnet tChatt och i den så ska vi ha följande fält :

ID                 | Räknare

Namn             | Text

Meddelande | Text (om mer än 255 tecken ska få användas så använd PM)

IP                   | Text

Datum           | Datum/Tid

 

Spara databasen och lägg den i samma mapp som övriga filer.

 

Nu ska vi skapa ramverket (Frames) :

 

Index.asp

<HTML>
<HEAD>
<TITLE>ASP Chatt</TITLE>
</HEAD>
<FRAMESET rows="100,*">
   
<FRAME src="top.asp" name="top">
   
<FRAME src="chatt.asp" name="chatt">
 
</FRAMESET>
</HTML>

Denna kod skapar ett ramverk som använder top.asp i den översta raden och chatt.asp i den nedre raden.

 

 

Top.asp ska vi endast ha ett formulär som skickar inlägget till databasen.

När sidan laddas så uppdaterar vi chatt rutan med ett JavaScript. Detta för att man ska se sitt nya inlägg direkt.

Top.asp

<HTML>
<HEAD>
<SCRIPT language="Javascript">
<!--
window.open("chatt.asp","chatt");
//-->
</SCRIPT>
<TITLE>ASP Chatt</TITLE>
</HEAD>
<BODY>
<% 
  Dim StrNamn
  StrNamn = Request.QueryString("Namn")
%>

<FORM method="POST" action="spara.asp" target="top">
Namn : 
<INPUT type="text" name="nick" value="<% = StrNamn %>"><BR>
Meddelande : 
<INPUT type="text" name="meddelande"><BR>
<INPUT type="submit" name="skicka" value="skicka">
</FORM>
</BODY>
</HTML>

 

 

Spara.asp ska ej synas på sidan utan sparar bara inlägget till databasen och tar bort gamla meddelanden.

Spara.asp

<%
Dim RS, Conn, SQL, StrNamn, StrMeddelande
StrMeddelande = Request.Form("Meddelande")
StrNamn = Request.Form("Nick")

Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")

Conn.Open = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("chatt.mdb")
SQL = "SELECT TOP 1 * FROM tChatt"
RS.Open SQL, Conn, 3, 3
RS.AddNew
RS("Namn") = StrNamn
RS("Meddelande") = StrMeddelande
RS("IP") = Request.Servervariables("REMOTE_ADDR")
RS("Datum") = Now
RS.Update
RS.Close
'** Rensar bort inlägg som är äldre än 2 timmar : **
SQL = "DELETE * FROM tChatt WHERE Datum < #" & DateAdd("h",-2,Now) & "#"
Conn.Close

Response.Redirect("top.asp?Namn=" & StrNamn)
%>

 

Chatt.asp är den sidan som visar de tio senaste inläggen.

Chatt.asp

<% Response.Expires = -1500 %>
<HTML>
<HEAD>
<META HTTP-EQUIV="Expires" CONTENT="Mon, 1 Jan 1990 00:00:00 GMT">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Refresh" CONTENT="5;URL=chatt.asp">
<TITLE>ASPChatt</TITLE>
</HEAD>
<BODY>
<%
Dim RS, Conn, SQL

Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")

Conn.Open = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("chatt.mdb")
SQL = "SELECT TOP 10 * FROM tChatt ORDER BY ID DESC"
RS.Open SQL, Conn, 0, 1
Do Until RS.EOF
Response.Write(RS("Datum") & " | " & RS("Namn") & " : " & RS("Meddelande") & "
<BR>")
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</BODY>
</HTML>

 

Ladda ner ett färdigt exempel.

 

Lycka till!

 © 2010 Staff consulting - Jimmy Staff