Foro de discusion en ASP y base de datos.
Ante todo les voy a explicar un poco como está armado este foro y como es su funcionamiento.
Consta de 5 archivos diferentes, llamados: foro.asp, guardar.asp, escribir.asp, contestar.asp, vermensaje.asp.
Esto está asi separado para una mejor comprension. Se puede hacer un foro de discusion en un solo archivo... o en dos.
Ademas de los 5 archivos, consta de una base de datos, la cual contiene toda la informacion que se muestra en el foro.
Para empezar a ver este foro, les mostraré la base de datos que usa, y los tipos de campos. Veamos:

Descripcion de los archivos:
foro.asp: Muestra el contenido del foro. Las discusiones enviadas, su estado(respuestas) y su fecha
pregunta.asp: Simple formulario para enviar una pregunta al foro.
contestar.asp: Formulario de respuesta a una pregunta ya creada.
guardar.asp: Archivo que se ejecuta despues de llenar cualquiera de los dos formularios (pregunta o contestacion), guaradando la informacion en la base de datos.
vermensaje.asp: Para visualizar una pregunta o discusion se ejecutará este asp mostrando la informacion.
Pueden bajar en formato zip todos los archivos y una base de datos preparada desde este link
A continuacion presentaré el código de cada uno de los 5 archivos para los que simplemente quieres hechar un vistazo de como está hecho:
Foro.asp
<B>Foro Solo ASP - foro.asp</B><BR>
<TABLE WIDTH="100%" ALIGN="center" BORDER="0" CELLPADDING="0" CELLSPACING="0">
<TR>
<TD><A HREF="pregunta.asp"><B>Envia tu pregunta al foro</B></A></TD>
</TR>
</TABLE><BR>
<%
Dim oConn, RS, mostrar, pag_totales, pag_actual
Set oConn = Server.CreateObject ("ADODB.Connection")
Set RS = Server.CreateObject ("ADODB.RecordSet")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\directorio_donde_descomprimiste\foro.mdb"
sql = "SELECT * FROM discusion WHERE IdCabeza=0 ORDER BY Fecha DESC"
RS.Open sql, oConn,3,1
mostrar = 10
rs.PageSize = mostrar
rs.CacheSize = mostrar
if Request.Querystring("pagina")="" then
pag_actual=1
else
pag_actual=CInt(Request.Querystring("pagina"))
end if
pag_totales = rs.PageCount
if pag_actual < 1 then
pag_actual = 1
end if
if pag_actual > pag_totales then
pag_actual = pag_totales
end if
if pag_totales=0 then
Response.Write("No hay mensajes en el foro.")
else
rs.AbsolutePage = pag_actual
Response.Write "<TABLE ALIGN=center WIDTH=100% CELLPADDING=0 CELLSPACING=0 BORDER=0><TR><TD>"
Response.Write("<B>Página " & Pag_actual & " de " & pag_totales &"</B><BR><BR>")
cant_registros = 0
Response.Write "</TD><TD ALIGN=right VALIGN=top>"
if pag_actual > 1 then
Response.Write("<A HREF=foro.asp?pagina="& pag_actual-1& "><B>Mensajes mas nuevos<B></A> ")
end if
if pag_actual < pag_totales then
Response.Write("<A HREF=foro.asp?pagina=" & pag_actual+1 &"><B>Mensajes más viejos<B></A><BR><BR>")
end if
%>
</TD></TR></TABLE>
<TABLE WIDTH="100%" ALIGN="center" BORDER="1" BORDERCOLOR="#473C59" CELLPADDING="0" CELLSPACING="0">
<TR BGCOLOR="#ffffcc">
<TD WIDTH="90%" ALIGN="center"><B>Título del Mensaje</B></TD>
<TD WIDTH="10%" ALIGN="center"><B>Respuestas</B></TD>
<TD ALIGN="center"><B>Fecha</B></TD>
</TR>
<% do while not rs.EOF and cant_registros < mostrar
fecha = RS("Fecha")
%>
<TR><TD><IMG SRC="arrow1.gif">
<A HREF="vermensaje.asp?idmensaje=<%=RS("IdMensaje")%>"><B><FONT FACE="Arial" SIZE="2"><%=(RS.Fields("Titulo"))%></FONT></B></A></TD>
<%
Response.Write "<TD ALIGN=center> ["& RS("Respuestas") &"] </TD><TD ALIGN=center><FONT SIZE=2>" &Day(fecha)&"/"&Month(fecha)&"</FONT><BR></TD></TR>"
cant_registros = cant_registros +1
RS.MoveNext
Loop
end if
RS.Close
oConn.Close
Set RS = nothing
Set oConn = nothing
%>
</TABLE>
|
Foro en ASP >> Siguiente página
|