Foro en asp

Hola amigos como puedo crear un foro de consulta en asp

1 respuesta

Respuesta
1
La base de datos sobre la que esta elaborado es ACCESS y utiliza la alocación directa del Driver sin usar DSN (esta es la forma de declaración a la que te obligan la mayoria de los servidores gratuitos al no dejarte definir DSN's de sistema)
Definición de la base de datos
Nombre de la Base de Datos: PyR.mdb
Consta de 3 tablas:
Tabla FOROS
Tabla PREGUNTAS
Tabla RESPUESTAS
Modulos y paginas estaticas de la aplicación
La aplicación consta de 8 paginas asp y 1 html estatico. Se podria reducir el numero de modulos reutilizando parte del codigo de estos, pero por claridad he preferido plantearlo de esta forma.
Addforo.asp Modulo de inclusión de un nuevo foro en la tabla Foros
addpregunta.asp Modulo de inclusión de una nueva pregunta en la tabla Preguntas
addrespuesta.asp Modulo de inclusión de una nueva respuesta en la tabla Respuestas
foros.asp Modulo de presentación, listado de todos los foros
insertarforo.htm Formulario de inserción de un nuevo foro
insertarpregunta.asp Formulario para insertar una nueva pregunta
pyr.asp Modulo de visualización de todas las preguntas de un determinado foro
responder.asp Formulario para insertar una respuesta a una pregunta
vr.asp Modulo de visualización de todas las respuestas a una determinada pregunta.
<%
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4%>
<%autor=request.form("autor")
nforo=request.form("nforo")
pregunta=request.form("pregunta")
if autor="" or pregunta="" or nforo="" then %>
<html>
<head>
<title>Error al insertar pregunta</title>
</head>
<body bgcolor="#CCFFCC">
<p align="center"><img border="0" src="images/titulo.jpg"></p>
<p align="center">Ningun campo puede estar en blanco,
<a href="insertarpregunta.asp?nforo=<%=nforo%>">
inténtalo otra vez</a></p>
</body>
</html>
<%else
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\ewebcity\db\pyr.mdb"))
set rs=createobject("ADODB.Recordset")
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.open "preguntas",conn
rs.addnew
rs("foro")=nforo
rs("autor")=autor
rs("fecha")=now()
rs("pregunta")=pregunta
rs.update
rs.close
donde="pyr.asp?nforo="&nforo
response.redirect donde
end if%>
<%
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4%>
<%nombre=request.form("nombre")
nforo=request.form("nforo")
respuesta=request.form("respuesta")
numero=request.form("numero")
if nombre="" or respuesta="" or numero="" or nforo="" then %>
<html>
<head>
<title>Error al insertar pregunta</title>
</head>
<body bgcolor="#CCFFCC">
<p align="center"><img border="0" src="images/titulo.jpg"></p>
<p align="center">Ningun campo puede estar en blanco,
<a href="responder.asp?numero=<%=numero%>&nforo=<%=nforo%>">
inténtalo otra vez</a></p>
</body>
</html>
<%else
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\ewebcity\db\pyr.mdb"))
set rs=createobject("ADODB.Recordset")
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.open "respuestas",conn
rs.addnew
rs("numero")=numero
rs("autor")=nombre
rs("fecha")=now()
rs("respuesta")=respuesta
rs.update
rs.close
donde="vr.asp?numero="&numero&"&nforo="&nforo
response.redirect donde
end if%>
<html>
<%sqltxt="select * from foros order by foro"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\ewebcity\db\pyr.mdb"))
set rs=createobject("ADODB.Recordset")
set rsr=createobject("ADODB.Recordset")
rs.open sqltxt,conn%>
<head>
<title>La Cueva de Smaug Foros</title>
</head>
<body bgcolor="#CCFFCC">
<p align="center"><img border="0" src="images/titulo.jpg"></p>
<p align="center"> </p>
<div align="center">
<center>
<table border="0" width="575">
<tr>
<td colspan="2" align="center" bordercolor="#008000" bgcolor="#008000" width="565"><font face="Verdana" color="#FFFFFF" size="2">Los
Foros de la Cueva TEMAS LIBRES</font></td>
</tr>
<%if rs.eof then%>
<tr><td colspan="2" width="565" bgcolor="#FFCCCC">No hay foros disponibles</td></tr>
<%else
do while not rs.eof%>
<tr>
<td width="470" bgcolor="#FFCCCC"><font face="Verdana" size="1"><%=rs("foro")%></font></td>
<td width="89" bgcolor="#FFCCCC">
<p align="center"><font face="Verdana" size="1"><a href="pyr.asp?nforo=<%=rs("codigof")%>"><img border="0" src="images/ir.gif" WIDTH="13" HEIGHT="13"></a></font></p>
</td>
<%rs.movenext
loop
rs.close
end if%>
</table>
</center>
</div>
<br>
<div align="center">
<center>
<table border="0" width="50%" bgcolor="#FFFFFF">
<tr>
<td width="30%" align="center"><font face="Verdana" size="1"><a href="insertarforo.htm">Crear
un nuevo Foro</a></font></td>
</tr>
</table>
</center>
</div>
</body>
</html>
<html>
<head>
<title>Crear un Nuevo Foro</title>
</head>
<body bgcolor="#CCFFCC">
<p align="center"><img border="0" src="images/titulo.jpg" width="450" height="75"></p>
<p align="center"><font face="Verdana">Crear un nuevo Foro</font></p>
<form method="POST" action="addforo.asp">
<table border="1" width="100%">
<tr>
<td width="100%" bgcolor="#008000"><font color="#FFFFFF">Nombre del Foro</font></td>
</tr>
<tr>
<td width="100%">
<p align="center"><input type="text" name="foro" size="50">
</p>
</td>
</tr>
</table>
<p align="center"><input type="hidden" name="nforo" value="<%=nforo%>">
<input type="submit" value="Enviar" name="B1"><input type="reset" value="Restablecer" name="B2"></p>
</form>
</body>
</html>
<%nforo=request.querystring("nforo")%>
<html>
<head>
<title>Insertar una pregunta</title>
</head>
<body bgcolor="#CCFFCC">
<p align="center"><img border="0" src="images/titulo.jpg"></p>
<p align="center"><font face="Verdana">Insertar una pregunta</font></p>
<form method="POST" action="addpregunta.asp">
<table border="1" width="100%">
<tr>
<td width="100%" bgcolor="#008000"><font face="Verdana" size="2" color="#FFFFFF">Pregunta</font></td>
</tr>
<tr>
<td width="100%">Pregunta insertada por: <input type="text" name="autor" size="20">
</td>
</tr>
<tr>
<td width="100%">
<p align="center"><textarea rows="5" name="pregunta" cols="50"></textarea></td>
</tr>
</table>
<p align="center"><input type="hidden" name="nforo" value="<%=nforo%>">
<input type="submit" value="Enviar" name="B1"><input type="reset" value="Restablecer" name="B2"></p>
</form>
</body>
</html>
<%nforo=request.querystring("nforo")
if nforo="" then
response.redirect "foros.asp"
end if
sqltxt="select * from foros where codigof="&nforo
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\ewebcity\db\pyr.mdb"))
set rs=createobject("ADODB.Recordset")
set rsr=createobject("ADODB.Recordset")
rs.open sqltxt,conn
if rs.eof then
response.redirect "foros.asp" 'evitamos el error de foro borrado
end if
nombredelforo=rs("foro")
rs.close
sqltxt="select * from preguntas where foro="&nforo
rs.open sqltxt,conn%>
<html>
<head>
<title>La Cueva de Smaug  (Foros)</title>
</head>
<body bgcolor="#CCFFCC">
<p align="center"><img border="0" src="images/titulo.jpg"></p>
<p align="center"><font face="Verdana"><font size="4">Foro: </font> <%=nombredelforo%>
<div align="center">
<center>
<table border="0" width="575">
<tr>
<td width="62" align="center" bordercolor="#008000" bgcolor="#008000"><font face="Verdana" size="1" color="#FFFFFF">Fecha</font></td>
<td width="254" align="center" bordercolor="#008000" bgcolor="#008000"><font face="Verdana" size="1" color="#FFFFFF">Pregunta</font></td>
<td align="center" bordercolor="#008000" bgcolor="#008000" width="82"><font face="Verdana" size="1" color="#FFFFFF">Numero
de Respuestas</font></td>
<td width="94" align="center" bordercolor="#008000" bgcolor="#008000">
<p align="center"><font face="Verdana" size="1" color="#FFFFFF">Ver
Respuestas</font></td>
<td width="49" align="center" bordercolor="#008000" bgcolor="#008000">
<p align="center"><font face="Verdana" size="1" color="#FFFFFF">Responder</font></p>
</td>
</tr>
<%if rs.eof then%>
<tr><td colspan=5 width="565" bgcolor="#FFCCCC">No hay preguntas</td></tr>
<%else
do while not rs.eof%>
<tr>
<td width="62" bgcolor="#FFCCCC"><font face="Verdana" size="1"><%=formatdatetime(rs("fecha"),2)%></font></td>
<td width="254" bgcolor="#FFCCCC" valign="middle">
<font face="Verdana" size="1"><%=rs("pregunta")%></font></td>
<%sqltxt2="select count(*) from respuestas where numero ="&rs("numero")
rsr.open sqltxt2,conn %>
<td width="82" bgcolor="#FFCCCC">
<p align="center"><font face="Verdana" size="1"><%=rsr(0)%></font></td>
<td width="94" valign="middle" align="center" bgcolor="#FFCCCC">
<%if rsr(0)<> 0 then%>
<a href="vr.asp?numero=<%=rs("numero")%>&nforo=<%=nforo%>"><font face="Verdana" size="1"><img border="0" src="images/ir.gif" width="13" height="13"></font></a>
<font face="Verdana" size="1">
<%else%>
  <%end if
rsr.close%>
</font>
</td>
<td width="49" align="center" bgcolor="#FFCCCC">
<p align="center"><font face="Verdana" size="1"><a href="responder.asp?numero=<%=rs("numero")%>&nforo=<%=nforo%>"><img border="0" src="images/ir.gif" width="13" height="13"></a></font></p>
</td>
</tr>
<%rs.movenext
loop
rs.close
end if%>
</table>
</center>
</div>
<p align="center"> </p>
<div align="center">
<center>
<table border="0" width="50%" bgcolor="#FFFFFF">
<tr>
<td width="30%" align="center"><font face="Verdana" size="1"><a href="insertarpregunta.asp?nforo=<%=nforo%>">Insertar
una pregunta</a></font></td>
</tr>
</table>
</center>
</div>
<br>
<div align="center">
<center>
<table border="0" width="50%" bgcolor="#FFFFFF">
<tr>
<td width="30%" align="center"><font face="Verdana" size="1"><a href="foros.asp">Volver a Foros</a></font></td>
</tr>
</table>
</center>
</div>
</body></html>
<%numero=request.querystring("numero")
nforo=request.querystring("nforo")
if numero="" or nforo="" then
response.redirect "pyr.asp"
end if
sqltxt="select * from preguntas where numero="&numero
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\ewebcity\db\pyr.mdb"))
set rs=createobject("ADODB.Recordset")
rs.open sqltxt,conn%>
<html>
<head>
<title>Responder a una pregunta</title>
</head>
<body bgcolor="#CCFFCC">
<p align="center"><img border="0" src="images/titulo.jpg"></p>
<p align="center"><font face="Verdana">Responder
a una pregunta</font></p>
<table border="0" width="100%">
<tr>
<td width="100%" bgcolor="#008000"><font face="Verdana" color="#FFFFFF" size="2">Pregunta
realizada por <%=rs("autor")%> el dia <%=formatdatetime(rs("fecha"),2)%></font></td>
</tr>
<tr>
<td width="100%" bgcolor="#FFFFFF"><%=rs("pregunta")%></td>
<%rs.close%>
</tr>
</table>
<p> </p>
<form method="POST" action="addrespuesta.asp?nforo=<%=nforo%>">
<table border="1" width="100%">
<tr>
<td width="100%" bgcolor="#008000"><font face="Verdana" size="2" color="#FFFFFF">Respuesta</font></td>
</tr>
<tr>
<td width="100%">Respuesta elaborada por: <input type="text" name="nombre" size="20">
</td>
</tr>
<tr>
<td width="100%">
<p align="center"><textarea rows="5" name="respuesta" cols="50"></textarea></td>
</tr>
</table>
<p align="center"><input type="hidden" name="numero" value="<%=numero%>">
<input type="hidden" name="nforo" value="<%=nforo%>">
<input type="submit" value="Enviar" name="B1"><input type="reset" value="Restablecer" name="B2"></p>
</form>
</body>
</html>
<%numero=request.querystring("numero")
nforo=request.querystring("nforo")
if numero="" then
response.redirect "pyr.asp"
end if
sqltxt="select * from preguntas where numero="&numero
sqltxt2="select * from respuestas where numero="&numero
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\ewebcity\db\pyr.mdb"))
set rs=createobject("ADODB.Recordset")
rs.open sqltxt,conn%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Respuestas a una pregunta</title>
</head>
<body bgcolor="#CCFFCC">
<p align="center"><img border="0" src="images/titulo.jpg"></p>
<%if rs.eof then
response.write "no hay respuestas para esta pregunta"
else%>
<table border="1" width="100%">
<tr>
<td width="100%" bgcolor="#008000"><font face="Verdana" color="#FFFFFF" size="2">Pregunta
realizada por</font><font face="Verdana" color="#00FFFF" size="2"> <%=rs("autor")%>
</font><font face="Verdana" color="#FFFFFF" size="2">el dia</font><font face="Verdana" color="#00FFFF" size="2"> <%=formatdatetime(rs("fecha"),2)%></font></td>
</tr>
<tr>
<td width="100%" bgcolor="#FFFFFF"><%=rs("pregunta")%></td>
<%rs.close%>
</tr>
</table>
<%rs.open sqltxt2,conn%>
<%if not rs.EOF then
nrespu=0%>
<p> </p>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<%do while not rs.EOF
nrespu=nrespu+1%>
<tr>
<td width="25%" bgcolor="#008000"><font face="Verdana" size="2"><font color="#FFFFFF">Respuesta nº </font><font color="#FFFF00"><%=nrespu%></font></font></td>
<td width="42%" bgcolor="#008000"><font face="Verdana" size="2"><font color="#FFFFFF">autor  </font><font color="#FFFF00"><%=rs("autor")%></font></font></td>
<td width="33%" bgcolor="#008000"><font face="Verdana" size="2"><font color="#FFFFFF">el dia </font><font color="#FFFF00"><%=formatdatetime(rs("fecha"),2)%></font></font></td>
</tr>
<tr>
<td width="100%" bgcolor="#FFFFFF" colspan="3"><%=rs("respuesta")%>
</td>
</tr>
<%rs.movenext
loop
end if%>
</table>
<p> </p>
<div align="center">
<center>
<table border="0" width="61%">
<tr>
<td width="50%" bgcolor="#FFFFFF">
<p align="center"><a href="responder.asp?numero=<%=numero%>&nforo=<%=nforo%>"><font face="Verdana" size="1">Insertar
Respuesta</font></a></td>
<td width="50%" bgcolor="#FFFFFF">
<p align="center"><font face="Verdana" size="1"><a href="pyr.asp?nforo=<%=nforo%>">Volver
al Foro</a></font></td>
</tr>
</table>
</center>
</div>
<%end if%>
</body></html>
Empieza a trabajar con eso, son todos los archivos que necesitas, ahora moldealos a tu gusto.
Lamento tanto mensaje pero en uno sólo sale cortado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas