m_a_r_i_o_x_z Usuario Novato

Mensajes: 4 Desde: 16/Feb/2007 | RE: Se le puede meter html a un libro de visitas
oigan.. miren lo ke encontre: En un proyecto en el que estoy actualmente trabajando, se quiere desarrollar una Comunidad Virtual de usuario registrados. Esta comunidad incluirá un libro de visitas, foros, tablones de anuncios y un "mail" interno, estilo Hotmail, para que los usuarios se envíen mensajes entre ellos. Todo esto por supuesto se quiere implementar mediante ASP. En esta serie de artículos intentaré explicaros cómo se pueden hacer estas características. Para comenzar, vamos a ver cómo realizar un libro de visitas en ASP, basado en un fichero de texto. Seguro que todos habréis visto miles de libros de visitas. Son sencillos: se muestra el contenido del libro, que suelen ser mensajes cortos firmados por una persona, y se presenta un formulario para añadir una nueva visita. La implementación es bastante sencilla: utilizamos el objeto FileSystemObject para manipular el fichero, y un poco de ASP básico para procesar el formulario. Vamos a ver algunos puntos relacionados con el objeto FileSystemObject (sistema de ficheros). Este objeto representa todo el sistema de ficheros: unidades, directorios, subdirectorios, archivos. Por lo tanto, tiene propiedades para acceder a las unidades de disco (Drives), a las carpetas (Folders) y los archivos (Files). El objeto FSO da grandes facilidades para trabajar con ficheros de texto. Se puede abrir un fichero de texto, leer su contenido entero en una sola cadena y tratarlo como si fuera una cadena normal de texto, para ver si contiene otras cadenas, para añadir o eliminar subcadenas, etc. Esto es lo que haremos con el libro de visitas. Para trabajar con el objeto FSO, a diferencia de con los objetos ADO, necesitamos crear en realidad varios objetos: un objeto FSO representa todo el sistema de ficheros, y para abrir un archivo necesitaremos un objeto File, por ejemplo. El objeto FileSystemObject se encargará de proporcionarnos los métodos para abrir archivos, pero a partir de entonces trabajaremos con el archivo, no con el objeto FSO. El último punto a destacar es haceros saber que FileSystemObject no es un objeto integrado de ASP, como Request, Server, o Response. Es un objeto que incluye el engine de Visual Basic Script. Si no pudiérais crear el objeto, instalad una versión nueva de VBScript. Tranquilos, el motor que instala el PWS soporta el objeto FSO. Para crear una instancia del objeto, utilizamos la siguiente línea:
<% Dim oFSO
set oFSO=Server.CreateObject("Scripting.FileSystemObject" %> NOTA:Fijáos en cómo anteponemos "Scripting". Esto quiere decir que el objeto lo crea el motor de VBScript. Vamos a mantener todo el libro de visitas con una sola página. La página muestra el contenido del fichero, presenta el formulario para entrar nuevos comentarios y se llama a sí misma para añadir la nueva entrada. A grandes rasgos, la estructura de la página es: Comprobamos si tenemos que añadir un comentario al fichero, es decir, si se ha enviado el formulario o simplemente se quiere leer el libro de visitas. Distinguiremos los dos estados mediante un valor en la QueryString. Llamar a la página "librovisitas.asp" simplemente mostrará el libro y el formulario, mientras que llamar a "librovisitas.asp?a=guardar" guardará un nuevo comentario. Esta es la ACTION del formulario. Leemos el fichero de texto y lo mostramos de forma apropiada. Presentamos el formulario para añadir una nueva entrada al final de la página Es importante aquí pensar en cómo se va a presentar el libro de visitas, puesto que vamos a introducir el HTML necesario al introducir los datos del formulario. Así, mostrar el libro simplemente será abrir el fichero e imprimirlo por completo. Tendremos que asegurar que en el fichero se encuentran los saltos de línea, marcas de negrita, etc. que necesitemos. Vamos a ver el principio del script, que decide qué tenemos que hacer: <% Dim CONST_LIBRO, oFSO, f, archivo, accion, contenido CONST_LIBRO="visitas.txt" ' Creamos el objeto FileSystemObject set oFSO=Server.CreateObject("Scripting.FileSystemObject" accion=Trim (CStr(Request.QueryString("a" )) select case accion case "guardar" Guardar MostrarLibro MostrarFormulario case else MostrarLibro MostrarFormulario end select set oFSO=nothing Si tenemos que guardar, llamamos primero al procedimiento que salva un nuevo comentario en el libro, y después, en cualquiera de los dos casos, mostramos el libro y el formulario para añadir un nuevo comentario.
Veamos estos procedimientos: MostrarLibro Sub MostrarLibro 'Abre el fichero y muestra el contenido en la página 'Obtiene un puntero al archivo del libro de visitas set archivo=oFSO.GetFile( Server.MapPath(CONST_LIBRO) ) 'Abro el archivo como un flujo de texto set f=archivo.OpenAsTextStream 'Leemos el archivo entero contenido=f.ReadAll f.Close set f=nothing set archivo=nothing 'y lo imprimimos Response.Write(contenido) End Sub 'MostrarLibro MostrarFormulario
Sub MostrarFormulario ' Presenta el formulario para añadir un comentario al libro %> <br><br><br><hr size=2> <TABLE BORDER="1" ALIGN="center"> <FORM NAME="Libro" METHOD="post" ACTION="librovisitas.asp?a=guardar"> <TR> <TD>Tu nombre:</TD> <TD><INPUT TYPE="text" SIZE="30" NAME="nombre"></TD> <TR> <TD>Email (opcional):</TD> <TD><INPUT TYPE="text" SIZE="20" NAME="mail"></TD> <TR> <TD>Mensaje:</TD> <TD><TEXTAREA ROWS="5" COLS="30" WRAP="virtual" NAME="mensaje"></TEXTAREA></TD> <TR> <TD COLSPAN="2"> <center> <INPUT TYPE="submit" VALUE="Escribir"> <INPUT TYPE="reset" VALUE="Limpiar"> </center> </TD> </TABLE> </FORM> <% End Sub 'MostrarFormulario Puro HTML. Veamos por último el procedimiento que lee del formulario los campos y los añade al final del libro de visitas, con el HTML que queramos para mostrar el libro. Guardar 'Guarda un nuevo comentario en el libro Dim nombre, mail, mensaje, fecha, archivo, f fecha=Day(Now())&"/"&Month(Now())&"/"&Year(Now()) 'Con Trim eliminamos los espacios en blanco a la derecha y a la izquierda nombre=Trim(CStr(Request.Form("nombre" )) mail=CStr(Request.Form("mail" ) mensaje=CStr(Request.Form("mensaje" ) ' No queremos comentarios anónimos o vacíos if nombre <> "" and mensaje <>"" then set archivo=oFSO.GetFile( Server.MapPath(CONST_LIBRO) ) 'Abro el archivo como un flujo de texto; 8: ForAppending, añadimos al final set f=archivo.OpenAsTextStream(8) f.WriteLine("<hr noshade>" f.WriteLine("<b>"&nombre&" ("&mail&" </b> escribió el "&fecha&":<br>" f.WriteLine(mensaje)
'Cierro el fichero f.Close set f=nothing set archivo=nothing Response.Write("<small>Se ha añadido con éxito tu comentario</small>" end if End Sub 'Guardar Es bastante sencillo. En ambos procedimientos usamos dos métodos: uno, GetFile, que devuelve un manejador de fichero estilo UNIX y que recibe como argumento la ruta al archivo (por esto usamos Server.MapPath. Además, en Guardar, añadimos el parámetro 8 al método OpenAsTextStream. Significa que añadimos al final del archivo. Los métodos para leer y escribir del archivo son bastante sencillos: ReadAll, que lee todo el archivo a una variable, WriteLine que escribe una línea añadiendo un retorno de carro al final, y por supuesto Close para cerrarlo. Espero que os sea útil. Un saludo y tmb.. entren aki..para ke vajen un zip.. y porke veo ke sale mal el texto por los emoticones.. : http://www.aspfacil.com/articulos/cv1_librovisitas.asp donde te da varias kosas.. si l entienden les agradeceria de antemano si me lo explicarian.. gracias!
|