Hola desconocido

Hora internet: @ 939

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





    © SoloASP.com.ar - 2001 / 2005. Todos los derechos reservados. soloasp@soloasp.com.ar
    Buenos Aires - Argentina. Diseño web y programación por Guido Laghi