|
el-brujo
|
ASP->Active Server Pages
C++ | Visual Basic | Interpretado:JavaScript | VBScript Servidor: PHP | ASP
PROGRAMACIÓN EN ASP:
Las páginas tienen una extensión .ASP Los tags son <% %>
ejemplo:
prueba.asp
<% response.write "HOLA" %>
Variables:
No hace falta definirlas
dim var1
option explicit obligamos a definir todas las variables (recomendado)
vartype var1
Nos devuelve el tipo de una variable (un número)
vbEmpty --> 0 vbNull --> 1 vbInteger --> 2 vbLong --> 3 vbSingle --> 4 vbDouble --> 5 vbCurrency --> 6 vbDate --> 7 vbString --> 8 vbObject --> 9 vbError --> 10 vbBoolean --> 11 vbVariant --> 12 vbDataObject --> 13 vbBytc --> 17 vbArray --> 8192
Ejemplo:
dim var1 var1=6.0 response.write vartype (var1)
Resultado --> 5 (o sea double)
option explicit response.write "Hola" response.write var1
Resultado --> Variable no definida: 'var1'
-----------------------------------------
División Entera --> \ Potencia -- ^ Modulo --> Mod
Operadores de comparación:
= <>
Concatenar: & (+)
and --> las dos son ciertas
or --> una de las dos es cierta
not -->lo contrario
xor --> cierto si solamente una de las dos es cierta.
function pepe(param1,param2) pepe=5 end function
exit function para salir de una funcion
Procedimientos sub PepeProc (par1,par2) end sub
exit sub para salir del procedimiento
Para llamar a un procedimiento
call PepeProc ("Par1,"par2) o directamente PepeProc "par1","par2"
if condicion then ... else ... end if
select case(variable) case "A": ... case "B": ... case "C": ... case Else: ... end select
function tipovariable(var)
for next
for a=1 to 5 .. next
do (while | until) ... loop
Do while a>0 ... loop
do until a=0 .. loop
While ... wend (Obsoleto)
For each ... in ...
For each elemento in Mi_Array
Salir bucles
Exit for (for)
Exit loop (while)
---------------------------- i=0 x=1 do while i<=9 i=i+1 resultado=x*i response.write "" response.write resultado loop ----------------------------
Ámbito de las variables
- Página Dim a a=5
Esta variable tiene valor dentro de esta página (sólo en la página actual)
- Sesión Válidas durante toda la visita del usuario (Dura hasta que se cierra el navegador o hasta que pasa un tiempo determinado)
Session("var")=5
- Aplicación Válidas siempre, no caducan y se puede acceder para todos los usuarios.
Application("var")=7
Global.asa
InetPub/www.root
se carga siempre que un usuario abre una página asp inicializaciones/terminaciones
session_onstart-->se activa cuando unusuario entra en la página session_onend-->se desactiva cuando un usuario abandona la sesión pq ha pasado un tiempo o pq ha hecho un session_abandon application_onstart--> se activa cuando el 1er usuario entra en la página web application_onend --> se desactiva cuando ya no haya ninguna sesión activa
plantilla para un fichero global:
sub session_onstart end sub sub session_onend end sub sub application_onstart application("visitas")=0 end sub sub application_onend end sub
PROPIEDADES:
session_id --> identificador de la sesión timeout --> tiempo que queda de sesión
session.sessionid
MÉTODO:
abandon-->destruye la sesión actual y nos activa el evento session_onend.No destruye la sesión hasta que no se haya ejecutado todo el código.
contents.remove-->elimina una variable de sesión contents.removeall-->elimina todas las variables de sesión contents-->colección de elementos añadidos a la sesión
ejemplo: session("var1")=1 session("var2")=2
Application
Lock --> bloquear
Unlock --> desbloquear
Application.lock Application.("variable")="Hola" Application.unlock
El objeto Server:
Propiedad:
ScriptTimeOut --> tiempo en segundos para ejecutar una página, sino lo hace en este tiempo da error. (Es como el max_execution_time = 30 del PHP)
CreateObject -> Crear objeto com
(Objeto COM --> objetos dentro de dlls que se encuentran en el directorio windows, y quedan para todas las aplicaciones windows. Se registran en el sistema, y cualquier programas puede acceder a ellas.
Execute -> ejecutar un ASP GetLastError -> Último error MapPath -> Carpeta física HtmlEncode -> Codificar para HTML UrlEncode -> Codificar una URL
Ejemplo:
El directorio raiz es: <%=server.mappath("/") %>
Codigo sin codificar <% response.write(" si a<b r>c") %>
Codigo codificado <%=server.htmlencode(" si a<b r>c") %>
Prueba URL
<%=server.urlencode("dir=c/del carmen,25") %>
= sirve para response.write
Transfer -> redirecciona a otra página.
Objeto Request y Response
Request -> obtener variables Response -> escribir valores
TotalBytes -> los bytes enviados al cliente en la petición.
ClientCertificate -> certificados Cookies -> cookies Form -> valoers formulario QueryString -> valor URL ServerVariables -> variables servidor
Ejemplo:
(Enviar la cookie antes de nada, o sea arriba de todo) <% response.cookies("Cantidad")=5 %>
El valor de la cookie es:
<%=request.cookies("Cantidad") %>
Ejemplo Formulario:
<form name="form1" method="post" action="mostrar.asp"> <p> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Nombre <input type="text" name="nombre"> </font></p> <p> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Dirección <input type="text" name="dire"> </font></p> <p> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Teléfono <input type="text" name="tel"> </font></p> <p> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> <input type="submit" name="Submit" value="Submit"> </font></p> </form>
---------------------------------------
Su nombre es: <%=request.form("nombre")%> Su dirección es: <%=request.form("dire")%> Su teléfono es: <%=request.form("tel")%>
Si el form method="get" entonces no podemos hacer request.form, sino querystring.
method="post" -> request.form method="get" -> querystring
path_info path_translated -> direccion fisica del disco duro query_string -> cadena con parametros remote_addr -> IP remote_host -> Nombre de la maquina request_method -> get o post script_map -> base del URL script_name -> ruta virtual server_port -> puerto servidor server_port_secure -> puerto SSL server_protocol ->protocolo de comunicaciones url -> URL server_software -> servidor
Server Variables
Ejemplo Info.asp
<%=request.servervariables("server_port") %> <%=request.servervariables("path_info") %> <%=request.servervariables("server_software") %> <%=request.servervariables("server_protocol") %> <%=request.servervariables("script_name") %> <%=request.servervariables("remote_host") %> <%=request.servervariables("remote_addr") %>
etc,etc,etc
Objeto Response
Buffer -> cierto o falso (si es cierto hasta que no se acabe de ejecutar la pagina no se envian los datos, si es falso se va enviando) O todo o nada, si tenemos 50 registros, si el buffer esta true, o nos enseña los 50 o ninguno, si esta en false, nos enseña 10 por ejemplo. CacheControl -> especificar si la pagina se guardará en caché en el proxy. Expires -> tiempo que tiene que almacenarse esta pagina en caché.
AppendToLog -> se guardara en el fichero log del servidor. Clear -> nos borra el buffer End -> terminamos la pagina, y se envia este el buffer esta true o no. FlusH -> envia lo que hay en el buffer, si esta true Redirect -> redirecciona la pagina a otro sitio Write -> para escribir Coookies -> colección de galletas
Ejemplo:
<% For x=1 to 1000 response.write (x) response.write "" next %>
Va saliendo....
Y ahora
<% response.buffer=true For x=1 to 1000 response.write (x) response.write "" next response.end %>
Sale de golpe!!!
Más ejemplos:
login.htm ------------------------------------ <html> <head> <title>- Login </title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" text="#000000"> <form name="form1" method="post" action="comprobar.asp"> <table width="41%" border="0" cellspacing="0" cellpadding="0" bgcolor="#999999" align="center"> <tr bgcolor="#333333"> <td colspan="3"> </td> </tr> <tr> <td width="19%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Nombre</font></td> <td width="55%"> <input type="text" name="nombre" maxlength="10"> </td> <td width="26%" rowspan="3"> </td> </tr> <tr> <td width="19%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Password</font></td> <td width="55%"> <input type="password" name="pass" maxlength="20"> </td> </tr> <tr> <td width="19%"> </td> <td width="55%"> <input type="submit" name="Submit" value="Enviar"> </td> </tr> </table> </form> </body> </html> ------------------------------------
comprobar.asp ------------------------------------ <% if (request.form("nombre")="alex") and (request.form("pass")="alex") then Session("nombre")=request.form("nombre") response.redirect("correcto.asp") else response.redirect("incorrecto.asp") end if %> ------------------------------------
correcto.asp ------------------------------------ <% response.write("Bievenido"&Session("nombre")) %> ------------------------------------
incorrecto.asp ------------------------------------ <% response.write("No tienes acceso") %> ------------------------------------
Teoría:
En el IIS 5.0 ASP Error
ASPCode Number Description File Line Column Source Category
variable+Error=server.getLastError
Página que abre el servidor cuando hay un erorr --> 500-100.asp
Conexiones con bases de datos
-> ODBC --> se puede conectar con cualquier base de datos que acepte ODBC
¿ Qué es el OBDC ? -> Conexión base de datos a través de Windows. Object Data Base Conection.
ADO -> colección de objetos para conectarse a la BD. WorkSpace, Recordset, etc
Primer paso:
Vamos a crear una base de datos con access:
clientes
IDCliente (autonúmerico) Nombre Direccion Telefono
Clientes.mdb
Configuración Panel de Control Fuentes de datos ODBC
Data Source Name (DSN)
DSN Usuario DSN Archivo (solo de un archivo)
DSN Usuario --> Agregar, Microsoft Acces-Driver, Nombre del Origen Clientes, Base de Datos (Seleccionar y cogemos cliente.mdb, en avanzadas podemos poner password, etc.
Set con= Server.CreateObject("ADODB.CONNECTION") con.open "DSN=Clientes;UID=Nombre_usuario;PWD=Password;"
a-> Crear RecordSet set mirs=con.execute("Select * from clientes") -> es como un mysql_query
mirs.eof mirs.movenext mirs("Nombre") etc
b-> Ejecutar una consulta con.execute=("Update...")
Variable de aplicación mejor, ponerlo en el global.asa, y luego llamarlo con un include.
response.write(mirs("Nombre"))
Ejemplo:
<% Set con= Server.CreateObject("ADODB.CONNECTION") con.open "DSN=Clientes;"
set mirs=con.execute("Select * from clientes")
do until mirs.eof response.write(mirs("Nombre")) mirs.movenext loop
%>
Para actualizar y borrar registros:
conexion.asp
<% Set con= Server.CreateObject("ADODB.CONNECTION") con.open "DSN=Clientes;"
set mirs=con.execute("Select * from clientes")
do until mirs.eof
response.write("<form method=post action=edit.asp>") response.write("<input type=hidden name=id value="&mirs("IDCliente")&">") response.write(mirs("IDCliente")) response.write("") response.write(mirs("Nombre")) response.write("") response.write(mirs("Direccion")) response.write("") response.write(mirs("Telefono")) response.write("") response.write("<input type=submit value=Editar>") response.write("</form>") response.write("<hr>") mirs.movenext loop
%>
edit.asp
<% Set con= Server.CreateObject("ADODB.CONNECTION") con.open "DSN=Clientes;"
if request.form("Borrar")="Borrar" then set mirs=con.execute("DELETE from clientes where IDCliente="&request.form("id")&"") response.write ("Eliminado") else if request.form("Actualizar")="Actualizar" then set mirs=con.execute("UPDATE clientes SET Nombre='"&request.form("Nombre")&"', Direccion='"&request.form("Direccion")&"', Telefono='"&request.form("Telefono")&"' where IDCliente="&request.form("id")&"") response.write ("Actualizado") else set mirs=con.execute("Select * from clientes where IDCliente="&request.form("id")&"")
response.write("<form method=post>") response.write("<input type=hidden name=id value="&mirs("IDCliente")&">") response.write ("Nombre: <input type=text name=Nombre value="&mirs("Nombre")&">") response.write("") response.write ("Dirección: <input type=text name=Direccion value="&mirs("Direccion")&">") response.write("") response.write ("Telefono: <input type=text name=Telefono value="&mirs("Telefono")&">") response.write("") response.write("<input type=submit name=Actualizar value=Actualizar>") response.write("<input type=submit name=Borrar value=Borrar>") response.write("</form>")
end if
end if %>
Funciones
var=array(1,2,3)
Join(matriz,caracter) Join --> una matriz en una cadena Split(cadena,delimitador) Split --> una cadena la convierte en array
(Bod,Byte,CCur,CDate,CDBl,Chr,Clnt,Clong,Str) -> nos convierte cualquier variable en un tipo que le digamos
chr.Asc --> código ASCII
Funciones de Fecha Time() Now() --> fecha y hora actual
Date()
DateAdd(Internal,Cantidad,Fecha) --> suma la fecha que le digamos
Day(Fecha) Month(fecha) Year(fecha) hour(fecha) minute(fecha) second(fecha)
DatePart(Inervalo,Fecha) --> q (cuarto trimestre) w (semana) y (dia del año) ww (semana del año)
FormatDateTime(fecha,formato) -> formatear una fecha o una hora FormatDateTime(fecha,1) FormatDateTime(fecha,2) etc
InputBox(texto,titulo,valorpred,xpos,ypos)
InStr([conocimiento],cadena1, cadena2) -> buscar una cadena en otra (buscamos la cadena 2 en la cadena 1
Left(cadena,longitud) Right(cadena,longitud) Mid(cadena,longitud)
Obtener partes de una cadena
|