Título: Curso ASP Publicado por: el-brujo en 28 Agosto 2002, 15:58 pm 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")="pepe") and (request.form("pass")="pepe") 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 |