|
ASP
(Léela, no te desamines,
es fácil y te gustará. Seguro)
Aprende a
guardar datos en una Base de Datos de Internet, a realizar
un Foro, un Contador, Votar y conceptos básicos de
ASP
ASP
es una tecnología que trata de que los códigos
de VBScript insertados en una página .asp, se
efectúen en el Servidor de Páginas Web
(no en el cliente), aunque una vez efectuado el código
en el Servidor, se le puede mandar alguna información
al cliente.
Significa Active Server Pages (Páginas del Servidor
Activas)
Supongamos que en algún lugar hay
configurado un Servidor de Páginas Web. Este Servidor,
como tal, contiene cierta cantidad de Páginas Web que
podemos ver a través de nuestro navegador. Nuestro
navegador, por ejemplo el Internet Explorer
es el cliente.
Supongamos, en el caso general, que un página
del Servidor tiene en su interior códigos de VBScript,
cuando esa página llega a nuestro navegador (el cliente
Internet Explorer). Éste saca la página web
en nuestra pantalla y ejecuta los códigos VBScript
que traía. Éstas son generalmente página
.htm
Supongamos que desde nuestro ordenador, buscamos
una página con extensión .asp
Resulta que esa página asp,
que se encuentra, como todas, alojada en el Servidor, contiene
códigos asp. Pues bien, esos códigos asp se
ejecutan en el Servidor y dependiendo de lo que ejecute nos
mandará una respuesta a nuestro cliente o simplemente
el resultado de la ejecución quedará en el servidor,
en una Base de Datos.
|
Documentos ASP:
1.-INTRODUCCION
A ASP.htm. Con esta página puedes comenzar a aprender
ASP, está sacada de http://www.aspespanol.
com/tutorial/ASP.htm
2.- asp.doc, sencillo documentos sobre
PWS y ASP, ocupa 53 K
3.- Manual de 10 páginas en pdf , ocupa 22 K comprimido
manual_de_asp.zip
4.- Manual de 48 páginas en pdf, ocupa 148 K comprimido
asp.zip
Hay muchas páginas sobre asp en Español aquí
te indico algunas, puedes encontrar más en los buscadores.
5.- Página sobre asp: http://www.asptutor.com/
asp/default.asp
6.- Página sobre asp:
http://www.soloasp.com.ar/
7.- Página sobre asp: http://www.aspfacil.com/
default.asp
8.- Otra página
http://www.webestilo.
com/asp/
|
Los códigos ASP que llevan estos tipos de
páginas van entre <% y %>
para distinguirlos de los códigos de VBScript que van entre
< y >.
|
Veamos un ejemplo de página asp:
ejemplo.asp
<HTML>
<HEAD><TITLE>Ejemplo de ASP>/TITLE>
</HEAD>
<BODY>
Hola.<BR>
Esto es simplemente un ejemplo<BR>
<IMG SCR="dibujo.gif><BR>
Estos son códigos normales de una página<BR>
<SCRIPT LANGUAGE="VBSCRIPT">
FOR N=1 to 3
MSGBOX("Códigos ejecutados en el cliente")
NEXT
</SCRIPT>
Esta frase está en la página web.<BR>
<%
FOR k=1 TO 4
Response.Write("Hola")
Response.Write("Esta parte se ejecuta en el servidor")
NEXT
%>
Ya hemos acabado<BR>
<HR>
</BODY>
</HTML>
|
Si quieres sacarle potencia a ASP, debes conocer VBS, CreateObject,
Bases de Datos y SQL.
Vamos hacer cosas
prácticas.
Mandar y recibir
Bájate estos dos archivos a tu ordenador.
(Pulsa sobre ellos con el botón derecho / Guardar destino
como... -----> Guárdalo en una carpeta)
(Edítalo con el Bloc de notas, para ver su contenido)
01ResponGet.htm
01ResponGet.asp
El primero es un HTM que tiene un formulario, cuando
le demos al botón Enviar, los datos del formulario:
nombre
apellidos
sexo
irán a:
http://www28.brinkster.com/aspes/01ResponGet.asp
<FORM NAME="Formulario" ACTION="http://www28.brinkster.com/aspes/01ResponGet.asp" METHOD=get>
Nombre: <INPUT TYPE="Text" NAME="nombre" SIZE=20>
Apellidos: <INPUT TYPE="Text" NAME="apellidos" SIZE=40>
Sexo: <BR>
H <INPUT TYPE="Radio" NAME="sexo" VALUE="varon">
M <INPUT TYPE="Radio" NAME="sexo" VALUE="hembra">
<BR><BR>
<INPUT TYPE="Submit" VALUE="Enviar">
</FORM>
|
El segundo es un ASP que contiene un "programa-script"
que recoge los datos recibido y te los vuelve a enviar en una confirmación.
<%= significa: devolver a quién lo ha mandado
Su nombre es <% = Request.QueryString("nombre") %>
<BR>
Sus apellidos son <% = Request.QueryString("apellidos") %>
<BR>
Su sexo es <% = Request.QueryString("sexo") %>
|
Este archivo debe estar en
un Servidor de Páginas Web que admita ASP, como por
ejemplo: BRINKSTER (gratuito).
Coge los datos que le ha enviado el formulario de 01ResponGet.htm
(nombre, apellidos, sexo) y se los vuelve a enviar en otra página.
Ahora pulsa esto: 01ResponGet.htm
(El archivo 01ResponGet.htm, puede estar en cualquier Servidor de
Páginas Web, en brinkster o en cualquier otro)
Te fijarás en un detalle muy importante
cuando el usuario reciba la página verá el siguiente
Código Fuente:
Su nombre es Francisco
<BR>
Sus apellidos son Trujillo Fuentes
<BR>
Su sexo es varon
|
Observarás que todo lo que está entre
<% y %> no lo ve el que recibe la página, porque ésta
parte del "programa-script" se ha efectuado en el Servidor
ASP de BRINKSTER.
Hay dos MÉTODOS para enviar los datos: GET y POST
|
<FORM NAME="Formulario"
ACTION="http://www28.brinkster.com/aspes/01ResponGet.asp"
METHOD=get>
El GET envía los datos en la misma Dirección:
01ResponGet.asp?nombre=Francisco&apellidos=Trujillo+Carrasco&sexo=varon
(¿No te recuerda a los Buscadores?)
Para recoger datos GET lo hacemos mediante <%
= Request.QueryString("apellidos") %>
|
|
<FORM NAME="Formulario"
ACTION="http://www28.brinkster.com/aspes/01ResponPost.asp"
METHOD=post>
El POST lo envía de otra manera, en paquetes.
Para recoger datos POST lo hacemos mediante <%
= Request.Form("apellidos") %>
Ejemplo de POST:
02ResponPost.htm
02ResponPost.asp
|
Pero por ahora no nos preocupemos por la diferencia.
Aunque utilizaremos el POST.
|
Los archivos ASP y las Base de Datos deben estar obligatoriamente
en un Servidor ASP, en este caso en Brinkster.
Los archivos HTM pueden estar en cualquier otro Servidor o
también en Brinkster.
Todos los archivos los he subido al Servidor ASP.
Las Bases de Datos están en otro directorio llamado
<db>
|
|

En \db van las Bases de datos.mdb y los archivos de
textos.txt (Ejemplos 5 y 6)
|
Aquí están todos los archivos anteriores:
htmaspmdb.zip (43 K)
En Cómo darme de alta gratuita
en Brinkster, puedes ver cómo registrarte.
Atención: Mis archivos están construidos
con esta dirección:
http://www28.brinkster.com/aspes/ debes
cambiarla según la dirección que te asigne Brinkster.
|
Guardar la información
en una Base de Datos.
1.- Pulsa mandar.htm
Has mandado datos a una Base de Datos en un Servidor de Internet.
2.- Pulsa http://www28.brinkster.com/aspes/presentar.asp
Te presenta los datos de la Base de Datos anterior.
|
Aquí tienes los cuatro archivos que vas a necesitar:
Guárdalos en una carpeta. Edítalos con el Bloc
de notas, para ver su contenido.
mensajes.mdb
mandar.htm
guardamensaje.asp
presentar.asp
Bajar los 4 archivos anteriores: dos.zip
(15 K)
Los archivos ASP y la Base de Datos deben estar en BRINKSTER
|
Tienes una Base de Datos que has construido con el Access.
La Base de Datos se llama: mensajes.mdb
Contiene una Tabla llamada: mitabla
La Tabla anterior contiene tres Campos: Fecha,
Nombre y Comentarios
(Es conveniente que Nombre y Comentarios sean del tipo Memo, y Fecha
de tipo Fecha)

Este archivo de Base de Datos (mensajes.mdb) la
subiremos al Servidor BRINKSTER.
Ahora vamos a realizar una página.HTM que
mediante un FORMULARIO mande datos a la tabla que está en
el Servidor.
mandar.htm
|
Manda un mensaje: <br>
<form name="formu" action="http://www28.brinkster.com/aspes/guardamensaje.asp" method=post>
<textarea name="comentarios" rows=5 cols=70>
</textarea>
<br>
Tu Nombre: <input type="Text" name="nombre" size=25>
<input type="Reset" value="Borrar" name="RESET">
<input type="Submit" value="Enviar" name="SUBMIT">
<br>
</form>
|
Aquí tienes, otra vez, el archivo mandar.htm
Ahora viene lo difícil, el archivo guardamensaje.asp
situado en el Servidor ASP debe coger
la información (nombre, comentarios) y guardarlo en la Base
de Datos. Así que debe:
1.- Recoger los
datos:
fecha=Now()
nombre = Request ("nombre")
comentarios = Request ("comentarios")
2.- Probar
si algún dato está vacío:
if nombre = "" then nombre = "-"
if comentarios = "" then comentarios = "-"
3.- Abrir
la Base de Datos:
Set con = Server.CreateObject("ADODB.Connection")
con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\aspes\db\mensajes.mdb"))
ATENCION: Es importante que la línea
anterior se escriba en un solo renglón.
4.- Insertar
los datos en la tabla de la Base de Datos:
sql= "INSERT INTO mitabla(fecha, nombre, comentarios)"
sql = sql & "VALUES('"&fecha&"', '"&nombre&"', '"&comentarios&"')"
con.Execute(sql)
Aquí hay que tener CUIDADO
con la comilla simple ('), con la doble (") y con las dos juntas
('")
guardarmensaje.asp
<%
fecha = Now()
nombre = Request.Form("nombre")
comentarios = Request.Form("comentarios")
if nombre = "" then nombre = "-"
if comentarios = "" then comentarios = "-"
Set con = Server.CreateObject("ADODB.Connection")
con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\aspes\db\mensajes.mdb"))
sql= "INSERT INTO mitabla(fecha, nombre, comentarios)"
sql = sql & "VALUES('"&fecha&"','"&nombre&"' ,'"&comentarios&"')"
con.Execute(sql)
%>
<b>He recibido tu mensaje <%= Request("nombre") %></b>
|
Claro que también sería conveniente
que cuando graben los datos en la Base de Datos, nos envíe
un mensaje confirmándolo.
<b>He recibido tu mensaje <%= Request("nombre")
%></b>
El archivo guardamensaje.asp
(Debe estar en el Servidor ASP de BRINKSTER)
Ya está, hemos conseguido introducir datos
en la Base de Datos que tenemos en el Servidor ASP de BRINKSTER.
|
|
SQL es un lenguaje que gestiona Base de Datos. Con las
instrucciones de éste lenguaje ponemos INSERTAR, SELECCIONAR,
BORRAR, MODIFICAR ....... datos de las Bases de Datos.
Para abrir la Base de Datos (mensajes.mdb):
Set con = Server.CreateObject("ADODB.Connection")
con.Open "DRIVER={Microsoft Access Driver (*.mdb};
DBQ="& Server.MapPath"aspes\db\mensajes.mdb"
Para introducir datos (mitabla):
sql= "INSERT INTO mitabla(fecha, nombre, comentarios)"
sql = sql & "VALUES('"&fecha&"', '"&nombre&"', '"&comentarios&"')"
con.Execute(sql)
Para sacar datos:
sql = "SELECT * FROM mitabla"
set RS= con.Execute(sql)
<% Do while not RS.EOF %>
< HR>
<B> Fecha:</B> <%= RS("fecha") %> <BR>
<B> Nombre:</B> <%= RS("nombre")%> <BR>
<B> Comentarios:</B> <%= RS("comentarios")%> <BR>
< % RS.MoveNext()
Loop %>
Más información
sobre SQL
El lenguaje SQL es muy estricto, tenemos que tener cuidado
con los cambios de líneas, con las mayúsculas,
con la comilla simple y la doble, etc...
|
¿Cómo puedo ver los datos
que hay en la Base de Datos (mensajes.mdb) de BRINKSTER?
Hace falta otro archivo ASP que
debe estar también en BRINKSTER
Tendremos que:
1.- Abrir
la Base de Datos:
Set con = Server.CreateObject("ADODB.Connection")
con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\aspes\db\mensajes.mdb"))
ATENCION: Es importante que la línea
anterior se escriba en un solo renglón.
2.- Coger
todos los Registro de la Tabla:
sql = "SELECT * FROM mitabla"
set rs = con.Execute(sql)
3.- Ir presentando
Registros hasta que llegue al último:
Do while not RS.EOF
Fecha:<%=RS("fecha")%>
Comentarios:<%=RS("comentarios")%>
Correo:<%=RS("correo")%>
RS.MoveNext()
Loop
presentar.asp
<%
Set con = Server.CreateObject("ADODB.Connection")
con.Open "comentarios2"
%>
Nuestros envíos, del más antiguo al más reciente: <BR><BR>
<%
Set con = Server.CreateObject("ADODB.Connection")
con.Open("DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=" & Server.MapPath("\aspes\db\mensajes.mdb"))
%>
<%
sql = "SELECT * FROM mitabla"
set rs = con.Execute(sql)
%>
<% Do while not RS.EOF %>
<HR>
<B>Fecha:</B><%=RS("fecha")%>
<B>Comentarios:</B><%=RS("comentarios")%>
<B>Correo:</B><%=RS("correo")%>
<%
RS.MoveNext()
Loop
%>
|
El archivo presentar.asp debe estar
en el Servidor ASP de BRINKSTER.
Al archivo presentar.asp lo puedes
llamar desde cualquier página.
Ejemplo: Ve a http://www28.brinkster.com/aspes/presentar.asp
Recordamos que la línea siguiente
debe ir en un sólo renglón:
con.Open("DRIVER={Microsoft Access
Driver (*.mdb)}; DBQ=" & Server.MapPath("\aspes\db\mensajes.mdb"))
¿Cómo puedo ver los datos
que hay en la Base de Datos del último al primer mensaje
introducido?
EOF significa Fin de Fichero
BOF significa Inicio de Fichero
Vamos a visualizar la tabla anterior comenzando en el registro
introducido más recientemente y terminando por el último
introducido.
Para poder utilizar instrucciones como .MoveLast,
.MovePrevious, .... tenemos que Crear
un Objeto Recordset y abrir la tabla
mediante Open.
presentar2.asp
Nuestros envíos, del más reciente al más antiguo: <BR><BR>
<%
Set con = Server.CreateObject("ADODB.Connection")
con.Open("DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=" & Server.MapPath("\aspes\db\mensajes.mdb"))
%>
<%
Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM mitabla"
rs.Open strSQL, con, 3,3
%>
<% rs.MoveLast %>
<%
Do while not RS.BOF
%>
<HR>
<B>Fecha:</B><%=RS("fecha")%><BR>
<B>Comentarios:</B><%=RS("comentarios")%><BR>
<B>Correo:</B><%=RS("correo")%><BR>
<%
RS.MovePrevious ()
Loop
%>
|
con.Open("DRIVER={Microsoft Access
Driver (*.mdb)}; DBQ=" & Server.MapPath("\aspes\db\mensajes.mdb"))
Aquí podemos ver el resultado: http://www28.brinkster.com/aspes/presentar2.asp
Las fechas aparecen el formato anglosajón: mes/dia/año
Además la hora presentada es la del Servidor de Brinkster
-5h GMT
Foro
1.- Pulsa: http://www28.brinkster.com/aspes/foro.asp
Manda y ves datos de una Base de datos
Ahora vamos a realizar un archivo ASP, que deberá estar
en el Servidor, y que contenga los tres anteriores, es decir el
FORMULARIO para enviar, el INSERT INTO para introducir datos y el
SELECT para sacar los datos.
|
|
El archivo foro.asp , no
es más que
la suma de los tres anteriores = mandar + guardarmensaje +
presentar
La Base de Datos también debe estar en el Servidor:
miforo.mdb
Bajar los archivos foro.asp
y miforo.mdb: tres.zip
(10 K)
El archivo ASP y la Base de Datos deben estar en BRINKSTER.
|
Lo llamaríamos desde cualquier página web de ésta
forma (haz clic):
http://www28.brinkster.com/aspes/foro.asp
Instituto
A estas altura ya eres un experto en ASP. Así que ahora
vamos a informatizar las matrículas de los alumnos de un
Instituto.
El alumno manda sus Datos Personales a la Base de Datos del Instituto.
Los Datos se INSERTAN en la Base de Datos y se devuelve una confirmación.
El alumno puede ver la lista de alumnos matriculados.
Pulsa 03index.htm
para ver su funcionamiento.
|
Aquí tienes los archivos que vas a necesitar:
Guárdalo en una carpeta. Edítalos con el Bloc
de notas, para ver su contenido.
03index.htm
03tusdatos.htm
03guardadatos.asp
03matriculados.asp
03instituto.mdb
Bajar los 5 archivos anteriores desde aquí:
instituto.zip (17 K)
|
Visualizar Base de datos de usuarios
en un Servidor.
Este ejemplo consiste en Consultar, Agregar, Modificar y Borrar
Registros de una Base de Datos situada en un Servidor.

El campo Número es numérico, Nombre,
Edad y Ciudad son de Texto.
Disponemos de varios Registros que podemos consultar o modificar.
Se puede Modificar el Nombre, la Edad y la Ciudad.
El Campo Número, indica el número de Registro.
"Consultar Número" consiste en poner un número
para obtener su correspondiente Registro.
Poco poco iré comentando este ejemplo.
Trabaja con ésta Base de Datos Agregando,
Modificando y Borrando usuarios...
Si estás realizando este ejemplo en tu Servidor IIS
en tu ordenador con XP y te sale éste error al intentar insertar
o actualizar la Base de Datos...
Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][Controlador
ODBC Microsoft Access] La operación debe usar una consulta actualizable.
...Ve al Administrador de Equipos / IIS / localiza tu Directorio
Virtual / Boton Derecho / Propiedades / Seguridad de directorios
/ quitar la opcion que viene activada de "Acceso anónimo"
|
Aquí tienes los archivos que vas a necesitar:
Guárdalo en una carpeta. Edítalos con el Bloc
de notas, para ver su contenido.
usuarios.asp
usuarios.mdb
Bajar los 2 archivos anteriores desde aquí:
cinco.zip (17 K) No
disponible
|
Contador de visitas
Éste contador lo podría hacer mediante Base de
datos y las variables Session y Application, pero lo voy
a realizar mediante un archivo de texto.txt
He puesto una Cookie para que no pueda contar la página
si la Actualiza antes de 2 minutos, o si antes de 2 minutos la vuelve
a cargar.
Le podría haber puesto...
Response.Cookies("contar").Expires = DateAdd("yyyy", 2, Now()) Dos
años.
Response.Cookies("contar").Expires = Date + 1
Un día.
Response.Cookies("contar").ExpiresAbsolute=#October 11,2005#
Una fecha.
También la Cookie Expirará si la borramos de nuestro
ordenador.
Si quieres puedes anular la Cookie escribiendo '
delante de los Response.Cookies
|
Aquí tienes los dos archivos que vas a necesitar:
Guárdalos en una carpeta. Edítalos con el Bloc
de notas, para ver su contenido.
contador.asp
contador.txt
Bajar los 2 archivos anteriores: seis.zip
(1 K)
El archivo contador.asp debe
estar en Brinkster.
Atención con el archivo contador.txt,
si lo utilizas en tu ordenador con IIS, lo puedes poner en
la misma carpeta que contador.asp. Pero si lo subes a Brinkster
debe estar en el directorio <db>
|
contador.asp
<%
Set fc = CreateObject("Scripting.FileSystemObject")
archi = Server.MapPath("contador.txt") (* Atención a ésta línea)
'Abrimos el archivo para Leerlo
Set archivo = fc.OpenTextFile(archi)
c = Clng(archivo.ReadLine)
' Consultamos si existe la Cookie "contar"
If Request.Cookies("contar") = "" Then
Response.Cookies("contar")="contado"
Response.Cookies("contar").Expires = DateAdd("n", 2, Now())
c = c + 1
'Abrimos el archivo para Escribirlo
Set archivo = fc.CreateTextFile(archi, True)
archivo.WriteLine(c)
end if
archivo.close %>
Visitas = <%= c %>
|
|
Atención a ésta línea:
archi = Server.MapPath("contador.txt")
Si lo estás ejecutando en
tu ordenador con IIS, el contador.txt puedes estar en la misma
carpeta que contador.asp.
Pero si estás en Brinkster el contador.txt debe estar
en la carpeta <db> y la
línea será...
archi = Server.MapPath("/aspes/db/contador.txt")
|
También necesitamos un archivo de texto llamado contador.txt
Antes de subirlo al Servidor tenemos que prepararlo,
para ello escribimos un renglón con el número 0. (En
caso que lo subas a Brinkster debe estar en la carpeta <db>)
contador.txt
Funcionamiento:
- Abre el archivo contador.txt y coge c.
- Consulta si existe la Cookie "contar"
- Si no existe la crea (Expira a los 2 minutos), c = c + 1 y presenta
el resultado.
- Si existe, simplemente presenta el resultado (no crea Cookie
ni cuenta)
Cada vez que cargue o Actualice (en más de 2 minutos)
la página contador.asp, se incrementará
en 1 el contador.
http://www28.brinkster.com/aspes/contador.asp
¿Y cómo podría
poner un contador en mi página.htm para que contara automáticamente?
Es decir, que la página no fuera .asp y cada vez que alguien
entrara se incrementara el contador.
Pues escribe un SCRIPT con
IFRAME en tu página web.htm
que llame al contador.asp que has puesto en Brinkster.
En ésta página que estás leyendo
he puesto el mencionado SCRIPT con
IFRAME, de manera que cada vez que
visitas (o Actualizas en 2 minutos) ésta página, se
incrementa el contador.
Visitas a la página http://www.iesromerovargas.net/sol/22asp.htm:
(Se puede mejorar la estética, poner otro tipo de letra,
en negrita, con otro fondo...)
Éste es el SCRIPT que tienes que poner en
las páginas.htm que quieres que salga el contador.
<script language="JavaScript">
<!-- to hide script contents from old browsers
document.write('<IFRAME SRC="http://www28.brinkster.com/aspes/contador.asp"');
document.write(' name="1" width="100px" height="30px"');
document.write('frameborder="yes" border="0" MARGINWIDTH="6" MARGINHEIGHT="6">
</IFRAME>');
// end hiding contents from old browsers -->
</script>
|
¿Pero qué es
un IFRAME?
Es introducir una página dentro de otra. Ejemplo:
Encuesta
Vamos a hacer una encuesta y presentar su resultado.
La podríamos hacer de varias formas, con base de datos,
con objeto Session y Application,.... pero al igual que en el ejemplo
anterior lo voy a realizar utilizando Cookie y un archivo de texto.txt
Aquí está:
|
Aquí tienes los tres archivos que vas a necesitar:
Guárdalos en una carpeta. Edítalos con el Bloc
de notas, para ver su contenido.
votar.htm
votos.txt
votos.asp
Bajar los 3 archivos anteriores: siete.zip
(2 K)
El archivo votos.asp debe estar
en Brinkster.
Atención con el archivo votos.txt,
si lo utilizas en tu ordenador con IIS, lo puedes poner en
la misma carpeta que votos.asp. Pero si lo subes a Brinkster
debe estar en el directorio <db>
|
El primero votar.htm lo componen
unos sencillos códigos que pueden ir en cualquier página.htm
Su formulario llamará a la página votos.asp
ubicada en el Servidor ASP de Brinkster.
Consta de un radio llamado "voto" que puede contener
los valores uno o dos
o tres.
<html>
<form name="form1"
action="http://www28.brinkster.com/aspes/votos.asp" method=post>
Elige uno de los tres:
<input type="radio" name="voto" value="uno"> Uno <br>
<input type="radio" name="voto" value="dos"> Dos <br>
<input type="radio" name="voto" value="tres"> Tres <br>
<input type="submit" name="Submit" value="Votar">
</form>
</html>
|
También necesitamos un archivo de texto llamado votos.txt
Antes de subirlo al Servidor tenemos que prepararlo,
para ello escribimos tres renglones con el número 0. (En
caso que lo subas a Brinkster debe estar en la carpeta <db>)
votos.txt
En la primera línea se irán incrementando los
votos de la opción "uno"
En la segunda línea se irán incrementando los votos
de la opción "dos"
En la tercera línea se irán incrementando los votos
de la opción "tres"
El archivo que queda es el más complicado, votos.asp
hará lo siguiente:
- Comprobará si tú tienes la Cookie "votar"
en tu ordenador, si la tienes NO puedes volver
votar hasta que la Cookie Expire.
If Request.Cookies("votar") <> "" Then
Response.Write "No puedes votar"
- Si no tienes la Cookie, te la meterá en tu ordenador,
y le dará una vida de 2 minutos
Response.Cookies("votar")="hasvotado"
Response.Cookies("votar").Expires = DateAdd("n", 2, Now())
Es decir, que hasta que no pasen 2 minutos no puedes volver
a votar. Le podríamos haber puesto...
Response.Cookies("votar").Expires = DateAdd("yyyy", 2, Now()) Dos
años.
Response.Cookies("votar").Expires = Date + 1
Un día.
Response.Cookies("votar").ExpiresAbsolute=#October 11,2005# Una
fecha.
También la Cookie Expirará si la borramos de
nuestro ordenador.
- Recoge la variable "voto" que le ha mandado el formulario.
vot = Request("voto")
- Abre el archivo para Leerlo y
va leyendo sus tres líneas.
Set fs = CreateObject("Scripting.FileSystemObject")
archi = Server.MapPath("votos.txt") (*
Atención a ésta línea)
Set archivo = fs.OpenTextFile(archi)
c1 = Clng(archivo.ReadLine)
c2 = Clng(archivo.ReadLine)
c3 = Clng(archivo.ReadLine)
- Comprueba a quién ha votado vot
y le suma + 1 a la variable correspondiente a su línea.
if vot="uno" then c1 = c1 + 1
if vot="dos" then c2 = c2 + 1
if vot="tres" then c3 = c3 + 1
- Abre el archivo para Escribirlo
y escribe las tres líneas con los valores anteriores.
Set archivo = fs.CreateTextFile(archi,
True)
archivo.WriteLine(c1)
archivo.WriteLine(c2)
archivo.WriteLine(c3)
- Realiza los cálculos estadísticos y presenta
los resultados.
ctotal = c1 + c2 + c3 <br>
c1pc = c1 / ctotal * 100
c2pc = c2 / ctotal * 100
c3pc = c3 / ctotal * 100 %>
Votos Unos = <%= c1 %> <br>
Votos Dos = <%= c2 %> <br>
Votos Tres = <%= c3 %> <br>
Votos Totales = <%= ctotal %> <br>
Porcentaje Uno = <%= c1pc %> <br>
Porcentaje Dos = <%= c2pc %> <br>
Porcentaje Tres = <%= c3pc %>
|
Atención a ésta línea:
archi = Server.MapPath("votos.txt")
Si lo estás ejecutando en
tu ordenador con IIS, el votos.txt puedes estar en la misma
carpeta que votos.asp.
Pero si estás en Brinkster el votos.txt debe estar
en la carpeta <db> y la
línea será...
archi = Server.MapPath("/aspes/db/votos.txt")
|
En vez de utilizar Cookie, se podría haber captado la
IP del votante y meterla en una Base de datos, y si pretende votar
otra vez, se consultaría esa Base de datos, en caso que esté
ya registrado, no podrá votar, de esta manera no tendríamos
que preocuparnos que borre la Cookie y que vuelva a votar.
Para ver las Cookies que tienes en tu ordenador,
su contenido e incluso modificarlas, utiliza el programa:
Cookie Editor (957 KB - Shareware 20
días)
http://www.proxoft.com/CookieEditor.asp
Chat
Vamos a realizar un chat como éste:
http://www28.brinkster.com/aspes/chat2.asp
|
Aquí tienes los tres archivos que vas a necesitar:
Guárdalos en una carpeta. Edítalos con el Bloc
de notas, para ver su contenido.
chat2.asp
elchatver.asp
elchat.mdb
Bajar los 3 archivos anteriores: ocho.zip
(20 K)
Los archivos chat2.asp y
elchatver.asp deben estar en Brinkster.
La base de datos elchat.mdb debe
estar en <db>
Recuerda que tienes que cambiar:
http://www28.brinkster.com/aspes/chat2.asp
|
Comentario de los archivos:
chat2.asp:
|
Ésto es para que cada vez que
baje la página, el Focus
(cursor) se sitúe automáticamente en el primer
casillero.
<SCRIPT LANGUAGE="JavaScript">
function placeFocus()
..........
</SCRIPT>
Ésto es para que la función
anterior placeFocus se realice
cuando se cargue la página (OnLoad)
<BODY bgcolor="#FF9900" topmargin="0" OnLoad="placeFocus()">
|
Esto establece el casillero en donde los usarios introducen su comentario.
Si pulsa el Botón "Enviar", manda (Submit) la información a Brinkster. Si pulsa "ENTER" onenter=document.formu.submit() también la manda.
<form name="formu" action="http://www28.brinkster.com/aspes/chat2.asp"
method=post>
<input type="text" name="comentarios" size="80"
maxlength="70" onenter="document.formu.submit();" >
<input type="Submit" value="Enviar" name="SUBMIT">
</form>
Si en el casillo hay algún caracter (<> "") se INSERTA la información en
la Base de Datos: \db\elchat.mdb en la tabla comen, en el campo comentarios
<%
comentarios = Request("comentarios")
if comentarios <> "" then
comentarios = left(comentarios,70)
Set con = Server.CreateObject("ADODB.Connection")
con.Open("DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=" & Server.MapPath("\aspes\db\elchat.mdb"))
sql= "INSERT INTO comen(comentarios)"
sql = sql & "VALUES('"&comentarios&"')"
con.Execute(sql)
End if
%>
|
con.Open("DRIVER={Microsoft Access
Driver (*.mdb)}; DBQ=" & Server.MapPath("\aspes\db\elchat.mdb"))
Esto establece un IFRAME en donde se visualiza la página elchatver.asp,
ésta presenta las 10 últimas entradas de la Base de Datos
<script language="JavaScript">
<!-- to hide script contents from old browsers
document.write('<IFRAME SRC="http://www28.brinkster.com/aspes/elchatver.asp"');
document.write(' name="1" width="80%" height="200px"');
document.write(' frameborder="no" SCROLLING="no"></IFRAME>');
// end hiding contents from old browsers -->
</script>
|
elchatver.asp
|
Esto hace que la página elchatver.asp
(que se muestra en el IFRAME) se Actualice automáticamente
cada 5 segundos.
<HEAD>
meta http-equiv="refresh" content="5"
Después de abrir la Base deDatos,
presenta los 10 últimos mensajes enviados.
<% rs.MoveLast %>
<%
n=0
Do while (n < 10) %>
<B>> </B><%=RS("comentarios")%><BR>
<%
RS.MovePrevious ()
n=n+1
Loop
%>
|
elchat.mdb
El campo Fecha no lo he utilizado (se podría poner
la fecha y hora)

El chat anterior es un ejemplo sencillo, un chat algo más
sofisticado sería éste:
Otro
Chat
Ver página web del país
de procedencia y no ver la de los demás paises.
En este ejemplo voy a poner varias páginas web, de manera
que sólo podrás ver la página correspondiente
a tu país, pero no la de los demás países.
Esto está realizado mediante ASP, de manera que cuando
pulsas sobre un país, te detecta tu IP, consulta en una Base
de datos el país correspondiente a esa IP y dependiendo si
coincide o no con tu país, te abrirá o no la página
que has elegido.
También se podría realizar un ASP de manera que
según el país del usuario que hace la llamada, te
redirigirá a una página u otra.
En este caso es sólo un ejercicio, si quieres ver las
páginas de los otros paises, las puedes visualizar escribiendo:
http://www.iesromerovargas.net/sol/pais/elpais.htm
¿Qué
te ha parecido? Mándame un comentario. Comentario
|
¿Qué es GLOBAL.ASA?
Es un archivo en donde se establecen variables de inicio.
¿Dónde hay Servidores de
ASP gratuitos en Internet?
Hay varios yo he utilizado http://www.brinkster.com y hace tiempo
http://www.samba.com
¿Cómo me doy de alta en
Brinkster?
Consulta Cómo
me doy de alta gratuitamente en Brinkster
¿Los archivos HTM también
tienen que estar en el Servidor de ASP?
Pueden estar en un Servidor "normal" o en el de ASP,
donde quieras. Los que necesariamente tienen que estar en el Servidor
ASP son los archivos.asp y las Bases de Datos.mdb
¿Puedo hacer que en mi ordenador
funcionen los archivos ASP?
En principio no.
Para que funcionen, tu ordenador tiene que estar configurado como
Servidor de Páginas Web con ASP.
Si tienes Windows 98 puedes instalarle el Servidor de Páginas
Web PWS.
Si tienes XP Professional puedes instalarle el Servidor de Páginas
Web IIS.
Debes crearte un Directorio Virtual.
En la sección IIS-FTP-MAIL,
puedes ver cómo se configura un Servidor Web con ASP (IIS).
¿En mi ordenador he instalado IIS
y ya funcionan las ASP, pero como "contacto" con las Bases
de Datos?
Debes Conectar la Base de Datos. Activarla mediante una herramienta
llamada ODBC.
En Windows 98 Panel de Control / ODBC(32)
En XP Inicio / Ejecutar / odbccp32.cpl
|