ASP

19

description

 

Transcript of ASP

Page 1: ASP
Page 2: ASP

PARÁMETROS EN UN HIPERVÍNCULO

ASP

Page 3: ASP

Parámetros en un hipervínculoasp

• Habíamos visto que podemos enviar datos al servidor mediante un formulario. En muchas situaciones necesitamos enviar datos al servidor al ser presionado un hipervínculo.

• Vamos a resolver un problema muy sencillo donde llamaremos a otra página enviándole como parámetro un número. La página que lo recibe imprime la tabla de multiplicar de dicho valor.

Page 4: ASP

• pagina1.html

• <html> <head> <title>Problema</title> </head> <body> <a href="pagina1.asp?tabla=2">Tabla del 2</a> <br> <a href="pagina1.asp?tabla=3">Tabla del 3</a> <br> <a href="pagina1.asp?tabla=4">Tabla del 4</a> </body> </html>

Page 5: ASP

• Como podemos observar un parámetro en un hipervínculo se lo añade en la propiedad href y seguido al nombre de la página a llamar mediante el caracter de "?" interrogación. Todo parámetro tiene un nombre y luego del caracter igual el valor del mismo.

• <a href="pagina1.asp?tabla=2">Tabla del 2</a> <br>

Page 6: ASP

• Ahora la página asp que rescata el valor del parámetro es:

• <%option explicit%> <html> <head> <title>problema</title> </head> <body> <% dim num,f num=request.querystring("tabla") response.write("<h1>Tabla de multiplicar del " & num &"</h1>") for f=num to num*10 step num response.write(f & "-") next %> </body> </html>

Page 7: ASP

• Recordemos que para extraer el valor cargado en un control de un formulario HTML utilizamos el objeto request y el método form. En cambio para recuperar el dato enviado en el hipervínculo empleamos el método querystring del mismo objeto request:• num=request.querystring("tabla") Una vez rescatado

el valor procedemos a mostrar los primeros diez términos de la tabla de multiplicar respectiva:• for f=num to num*10 step num response.write(f &

"-") next

Page 8: ASP

• Es decir inicializamos el contador f con el valor rescatado del parámetro. En cada paso del for incrementamos el contador f en num. Por último indicamos que el ciclo finalice cuando f llegue al valor num*10.

• Si queremos pasar más de un parámetro en un hipervínculo debemos separarlos empleando el carácter &.

• Por ejemplo:• <a href="pagina1.asp?inicio=5&fin=10">Mostrar los números

comprendidos entre 5 y 10</a>

Page 9: ASP

ESCRITURA Y LECTURA DE UN ARCHIVO DE TEXTO EN ASP

Veremos ahora una actividad fundamental para el empleo de páginas dinámicas que es la registración de datos en el servidor empleando un archivo de texto.

Debe quedar bien en claro que el archivo de texto se encuentra en el servidor web y no en la máquina donde se encuentra el navegador.

Desarrollaremos un problema que requiera la creación, carga y lectura de una archivo de texto:Confeccionar un programa que permita cargar comentarios en un sitio web y almacenarlos en un archivo de texto. Implementar dos hipervínculos, uno que permita cargar datos en el archivo de texto y otra página que permita realizar la lectura del archivo de texto.

Page 10: ASP

• La primer página tiene por objetivo mostrar los dos hipervínculos:

• pagina1.html

• <html> <head> <title>problema</title> </head> <body> <a href="pagina2.html">Cargar comentarios</a><br> <a href="pagina3.asp">Leer comentarios</a> </body> </html>

Page 11: ASP

• Ahora presentaremos los dos archivos necesarios para efectuar la carga y registración de datos en el servidor:

• pagina2.html• <html> <head> <title>problema</title> </head> <body> <form

action="pagina2.asp" method="post"> Ingrese su nombre: <input type="text" name="nombre"><br> Comentarios<br> <textarea name="comentarios" rows="10" cols="40"></textarea><br> <input type="submit" value="enviar"><br> </form> </body> </html>

Page 12: ASP

Ahora el archivo que presenta los conceptos nuevos es: pagina2.asp <%option explicit%> <html> <head> <title>problema</title> </head>

<body> <% dim nombre,comentarios,archivo,ref nombre=request.form("nombre") comentarios=request.form("comentarios") set archivo = CreateObject("Scripting.FileSystemObject") set ref = archivo.OpenTextFile(server.mappath("comentarios.txt"), 8, True) ref.writeline("_____Comentario___________________________________________________") ref.writeline(now()) ref.writeline("") ref.writeline("Nombre: " & nombre) ref.writeline("") ref.writeline("Comentarios: " & comentarios) ref.close() %> <h2>Los comentarios fueron registrados</h2> <a href="pagina1.html">Retornar</p> </body> </html>

Page 13: ASP

Ahora procederemos a la lectura del archivo de texto: pagina3.asp <%option explicit%> <html> <head> <title>problema</title> </head>

<body> <% dim linea,archivo,ref set archivo = CreateObject("Scripting.FileSystemObject") set ref = archivo.OpenTextFile(server.mappath("comentarios.txt"), 1, True) do while not ref.atendofstream linea=ref.readline() response.write(linea & "<br>") Loop ref.close() %> <br> <a href="pagina1.html">Retornar</p> </body> </html>

Page 14: ASP

• Creamos ahora un objeto de la clase FileSystemObject que nos permite acceder al sistema de archivos del servidor como vimos en la página anterior:

• set archivo = CreateObject("Scripting.FileSystemObject") Abrimos un archivo de texto para leer:

• set ref = archivo.OpenTextFile(server.mappath("comentarios.txt"), 1, True) Ahora indicamos en el segundo parámetro el valor 1 ya que de esta forma se abre el archivo para lectura. Como pasamos True en el tercer parámetro si el archivo no existe se crea en forma automática.

• Para proceder a la lectura de cada línea del archivo de texto:• do while not ref.atendofstream linea=ref.readline() response.write(linea & "<br>")

Loop El método atendofstream retorna true si llegó al fin de archivo, por eso mediante el operador lógico not invertimos el valor devuelto por esta función. Normalmente atendofstream retorna false ya que no se ha llegado al fin de archivo.

• Este while se repite mientras no se llegue al fin de archivo. En cada vuelta leemos una línea del archivo de texto con el método readline, procediendo a imprimirla en la página. Agregamos un br al final de cada línea.

• Cuando finalizamos la lectura de datos del archivo de texto procedemos a cerrarlo:• ref.close()

Page 15: ASP

EJEMPLO Simulador (Cuando presiona el botón "ejecutar el programa" se

graban todos los cuadros de texto y se ejecuta el primero de la lista mostrando en una página el resultado.)

Confeccionar un programa que permita cargar comentarios en un sitio web y almacenarlos en un archivo de texto.Implementar dos hipervínculos, uno que permita cargar datos en el archivo de texto y otra página que permita realizar la lectura del archivo de texto.

Page 16: ASP

• pagina1.html

• <html>• <head>• <title>problema</title>• </head>• <body>• <a href="pagina2.html">Cargar comentarios</a><br>• <a href="pagina3.asp">Leer comentarios</a>• </body>• </html>

Page 17: ASP

pagina2.html <html> <head> <title>problema</title> </head> <body> <form action="pagina2.asp" method="post"> Ingrese su nombre: <input type="text" name="nombre"><br> Comentarios<br> <textarea name="comentarios" rows="10" cols="40"></textarea><br> <input type="submit" value="enviar"><br> </form> </body> </html>

Page 18: ASP

pagina2.asp <%option explicit%> <html> <head> <title>problema</title> </head> <body> <% dim nombre,comentarios,archivo,ref nombre=request.form("nombre") comentarios=request.form("comentarios")

set archivo = CreateObject("Scripting.FileSystemObject") set ref = archivo.OpenTextFile(server.mappath("comentarios.txt"), 8, True) ref.writeline("_____Comentario___________________________________________________") ref.writeline(now()) ref.writeline("") ref.writeline("Nombre: " & nombre) ref.writeline("") ref.writeline("Comentarios: " & comentarios) ref.close() %> <h2>Los comentarios fueron registrados</h2> <a href="pagina1.html">Retornar</p> </body> </html>

Page 19: ASP

pagina3.asp <%option explicit%> <html> <head> <title>problema</title> </head> <body> <% dim linea,archivo,ref

set archivo = CreateObject("Scripting.FileSystemObject") set ref = archivo.OpenTextFile(server.mappath("comentarios.txt"), 1, True) do while not ref.atendofstream linea=ref.readline() response.write(linea & "<br>") Loop ref.close() %> <br> <a href="pagina1.html">Retornar</p> </body> </html>