Con el siguiente codigo crearemos una carpeta en el servidor utilizando FSO
<%
Set fs = CreateObject("scripting.FileSystemObject")
fs.CreateFolder("d:rameworld")
%>Copia una carpeta completa utilizando FSO (FileSystemObject)
<%
Set fs = CreateObject("scripting.FileSystemObject")
fs.CopyFolder "d:db" , "d:clock"
%>Copia un archivo utilizando FSO (FileSystemObject)
La sintaxis de la instrucción CopyFile es : CopyFile(archivo a copiar, destino)
<%
Set fs = CreateObject("scripting.FileSystemObject")
fs.CopyFile "d:db*.asp", "d:clock"
%>El siguiente script cuenta los archivos que hay en una carpeta espesificada
<%
** first, set the folder that we want to list
** this can also be a value passed from a form
dirname="/users/kathi/asp/samples/tut/"
mypath = "tut/"
Set fso = CreateObject("scripting.FileSystemObject")
Set folder = fso.GetFolder(server.mappath(dirname))
Set filez = folder.Files
FileCount = folder.Files.Count
response.write "<center><font size=1>There are "
response.write "<b><font size=2>"
response.write FileCount & "</b></font>"
response.write " tutorials.</font></center><p>"
For Each listing in filez
TotalChars = len(listing.name)
Title = left(listing.name,TotalChars - 4)
Title = replace(Title,"_"," ")
response.write "<A HREF=" & mypath
response.write listing.name
response.write " class=""menu"" target=""_new"">"
response.write Title
response.write "</A><br>"
Next
%>Lo que tiene de interesante este ejemplo, es simplemente la sentencia SQL, tal vez un tanto desconocida para algunos.
Con las sentencias que veremos a continuación podemos crear tablas nuevas sobre una base de datos ya existente, pudiendo también definir la cantidad y tipos de campo que la componen.
Hare un breve resumen de los parámetros de la sentencia para introducirlos y que sea mas fácil entenderla:
Sentencia |
Definición / Acción |
Ejemplo |
CREATE TABLE |
Sirve para crear la nueva tabla |
CREATE TABLE mi_tabla |
DROP TABLE |
Sirve para eliminar una tabla existente |
DROP TABLE mi_tabla |
PRIMARY KEY |
Definimos el campo como Clave Primaria |
campo PRIMARY KEY |
AUTOINCREMENT |
Definir un campo de tipo Auto Numerico |
campo AUTOINCREMENT |
INTEGER |
Definir un campo de tipo Numerico |
campo INTEGER |
TEXT (20) |
Definir un campo de tipo Texto |
campo TEXT(20) |
DATETIME |
Definir un campo de tipo Dia/Fecha |
campo DATETIME |
MEMO |
Definir un campo de tipo Memo |
campo MEMO |
Y ahora si, pasamos al código de ejemplo donde hacemos la conexion a una base de datos cualquiera, creamos la sentencia SQL con los parámetros que vimos aqui arriba, y la ejecutamos sobre la base. Suerte :)
<%
Driver de conexion a la BD
StrConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&
Server.MapPath("base.mdb")
Set oConn = Server.CreateObject("ADODB.Connection")
oCOnn.open StrConn
sql = "CREATE TABLE nombre_de_tabla "
sql = sql & "(campo_autonumerico AUTOINCREMENT PRIMARY KEY, "
sql = sql & "campo_numerico INTEGER, campo_texto TEXT(20) ,"
sql = sql & "campo_memo MEMO, campo_fecha DATETIME )"
Ejecución de la sentecia sql sobre la BD
oConn.execute sql
oCOnn.close
Set oCOnn = nothing
%>?Alguna vez has querido saber la IP o el Host de quien visita tu web? ?Saber si la petición es post o get? Pues muy facil, esto se puede hacer recurriendo a las variables del servidor.
Por ejemplo si quisieramos mostrar la ip del visitante hariamos:
<% response.write Request.ServerVariables("REMOTE_ADDR") %>Algunas de las variables más utilizadas:
CONTENT_TYPE: El tipo de datos que se está mostrando (texto, imagen jpeg, etc)
QUERY_STRING: Aquí se almacena todo lo que va detrás de "?" . Por ejemplo si pusieramos pagina.asp?var=value QUERY_STRING contendría "var=value"
REMOTE_ADDR: La ip del visitante
REMOTE_HOST: El host del visitante
HTTP_CLIENT_IP: Esta variable proporciona la ip del usuario cuando accede a través del proxy caché de telefónica.
REQUEST_METHOD: El método de petición que se ha utilizado para abrir la página actual (post o get)
SERVER_NAME: IP o Nombre que tiene asignado el servidor.
HTTP_REFERER: Contiene la página de la que procede el visitante.
REQUEST_URI: Devuelve la uri de la página. Si abrimos http://www.tuweb.com/dir/pagina.asp nos devuelve /dir/pagina.asp
Como ya hemos visto al principio, para utilizar estas variables sólo tenemos que utilizar el método "ServerVariables" Ejemplo:
<% Referer = Request.ServerVariables("HTTP_REFERER") %>Validar un e-mail ingresado en un formulario usando InStr() y Len()
Con este script podemos verificar que una cadena de caracteres, represente a algun mail. En resumen, verificaremos si un usuario ingreso un mail o no. Si no lo hizo, rechazaremos su petición.
<FORM METHOD="post" ACTION="">
Ingresar un email: <INPUT NAME="correo"><INPUT TYPE="submit" VALUE="Comprobar!">
</FORM>
<%
if request.form("correo") <> "" then hago la comprobacion.
correo = trim(request.Form("correo"))
response.Write "El email que ingresaste es: <B>"& correo &"</B><BR><BR>"
nos fijamos que tenga mas de 4 caracteres de longitud (no existen mails de 4)
if Len(correo) < 5 then novalido = "No puede tener menos de <B>5</B>
caracteres.<BR>"
nos fijamos que contenga el caracter "@"
if Len(correo, "@") = 0 then novalido = novalido + "No contiene <B>""@""</B><BR>"
nos fijamos que contenga el caracter "."
if Len(correo, ".") = 0 then novalido = novalido + "No contiene <B>"".""</B><BR>"
nos fijamos que exista un . despues de la "@"
cuidado con los mails que son de este estilo algo.algo@hotmail.com
para eso ponemos como comienzo de busqueda, el caracter de la "@"
ubicacion_arroba = Len(correo, "@")
si no hay @ en la cadena, ubicacion_arroba tomará el valor 0, entonces...
if (ubicacion_arroba <> 0) and (Len(correo, ".") <> 0) then
if Len(correo, "@") > Len(ubicacion_arroba, correo, ".") then
novalido = novalido + "No existe un <B>"".""</B> despues del <B>""@""</B>"
end If
end If
if novalido = "" then
novalido = "<B>Email valido</B>"
response.Write novalido
else
response.Write "<B>Email invalido</B>. Los motivos son los siguientes: <BR>"
response.Write novalido
end If
end If
%>Login con usuario y contraseña desde una BD de Access
El ejemplo a continuación sirve para chequear si el nombre de usuario ingresado en un formulario, coincide con su contraseña. Si no es asi, denegaremos el ingreso a la siguiente página.
Veamos el ejemplo que sigue.
Este codigo de Puro HTML va en la primer página:
Archivo: pagina1.asp
<FORM ACTION="pagina2.asp" METHOD="post"><BR> <B>Usuario:</B> <INPUT NAME="usuario" SIZE="12"><BR> <B>Contraseña:</B> <INPUT NAME="password" SIZE="12"><BR><BR> <INPUT TYPE="submit" VALUE="Ingresar"> </FORM>
Este código va en la página a donde se envian los datos del FORM. En mi ejemplo seria pagina2.asp.
Archivo: pagina2.asp
<%
Dim usuario, password, oConn, RS
Primero nos fijamos si ambos campos fueron completados.
Si no se cumple, redireccionamos a pagina1.asp
if Request.Form("usuario") = "" OR Request.Form("password") = "" then
response.Redirect "pagina1.asp"
else
Guardamos los datos del Form en variables y evitamos la comilla simple
usuario = trim(Request.Form("usuario"))
password = trim(Request.Form("password"))
usuario = Replace(usuario,"","")
password = Replace(password,"","")
Conectamos a nuestra BD.
Set oConn = Server.CreateObject ("ADODB.Connection")
oConn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&
Server.MapPath("./basedatos.mdb")
Seleccionamos de la tabla solo los registros que concuerden con el
usuario del Form.
sql = "select * from prueba where usuario = "& usuario &""
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.open sql, oConn
Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el usuario.
if (RS.EOF = true) then
response.Write "Ese usuario no existe"
elseif RS.Fields("password") = password then Si el campo de la tabla es
igual a nuestra variable, estas logueado.
response.Write "Te logueaste con exito... Bienvenido "& usuario &""
else Otra cosa, seria cuando el password no es la que seleccionamos.
response.Write "Esa contraseña no concuerda con el usuario ingresado"
end if
Limpiamos y cerramos.
RS.close
oConn.close
Set RS = nothing
Set oConn = nothing
end If
%>Recibir a un usuario cordialmente. (Cookies)
Trabajaremos con las Cookies para almacenar el nombre del visitante y la cantidad de veces que visitó la página. Para ello mostraremos un formulario, donde se preguntará por el nombre de la persona. Al completarlo, creamos una cookie que contenga la informacion del nombre, y otra que lleve la cuenta de sus visitas. Cada vez que entra, comprobamos la existencia de la cookie con el nombre. Si no existe, es que nunca llenó el formulario, entonces se lo mostramos. En cambio si la cookie existe, no mostramos el formulario, y mostramos la información que contienen las galletas (cookies).
<%
Declaro la varible visit, con la cual modificaré el valor de las visitas.
Dim visit
Pregunto si el form se relleno recien.
if Request.Form <> "" then
response.Cookies("nombre").Expires = "1/1/2005"
Si se cumple, creo las cookies para este usuario nuevo.
response.Cookies("nombre") = Request.Form("nombre")
end If
Verifico la existencia de la cookie("nombre").
if Request.Cookies("nombre") <> "" then
Si existe la cookie, muestro los datos.
response.Write "Hola <B>"&Request.Cookies("nombre")&"</B>"
Modifico el valor de la cookie("visitas"), dandole el valor de la variable
visit (modificada arriba).
si no existe, muestro el formulario .
else
%>
<FORM METHOD="post" ACTION="misma_pagina.asp">
Tu Nombre: <INPUT name=nombre>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
<% end if %>Observación:
Cuidado con el tema de los encabezados HTTP. Una forma de solucionar este conflicto es agregar la linea <% response.Buffer = true %> al comienzo de la página ASP
Añade este script en tu web para saludar a los usuarios según la hora del día:
<%
Dim hora
hora = Hour(time())
Empezamos la comprobaciones de tiempo.
if hora > 6 and hora < 13 then
response.Write ("Buenos Dias, son las: " & time())
elseif hora > 12 and hora < 20 then
response.Write ("Buenas Tardes, son las: "& time())
elseif hora > 19 and hora < 24 then
response.Write ("Buenas Noches, son las: "& time())
elseif hora >= 0 and hora < 7 then
response.Write ("Buenas Noches, son las: "& time())
end IF
%>