![]() |
hola para todos los que le interesa la variante esa que dice urjose de otros sistema de usuario y contraseña con session y que el dice debajo que lo malo es que est'a en ingles aqui les envio la primera parte traducida al español. A menudo como Desarrollador WEB te encuentras en situaciones donde quieres proteger areas especificas de tu sitio de ser vista por todos. Un buena manera de hacerlo es agregando proteccion por password a tu Sitio. Lo primero que debes hacer es crear una página de logeo, la cual sería algo como esto: <% Sub ShowLogin %> <form name=form1 action=login.asp method=post> User Name : <input type=text name=username> Password : <input type=password name=userpwd> <input type=hidden name=login value=true> <input type=submit value="Login"> </form> <% End Sub %> El código anterior simplemente crea un formulario. La segunda caja de texto tiene el tipo password Type=Password, lo que hace que lo que el usuario que haya escrito aparesca como estrellas (como estas ******). También anotar que si quieres que la acción de l formulario sea la misma página. Entonces no necesitamos una segunda página para manipular el chequeo del password. Hablar'e del elemento Hidden en el formulario después. Tambié ver'a por que pusimos el formulario dentro de una sub rutina m'as adelante. Antes de introducir el codigo para chequear y ver si el usuario y el password son correctos necesitamos agregar algo de codigo en login.asp para chequear y ver si el formulario fue enviado. Response.Expires = -1000 'Makes the browser not cache this page Response.Buffer = True 'Buffers the content so our Response.Redirect will work Session("UserLoggedIn") = "" If Request.Form("login") = "true" Then CheckLogin Else ShowLogin End If Este codigo ira a revisar si en login.asp el formulario fue enviado. Si lo fue entonces podemos chequear el logeo, si no entonces mostramos el formulario de logeo. Luego agregaremos el codigo subrutina del chequeologeo para chequear y ver si el usuario y el password son correctos Sub CheckLogin If LCase(Request.Form("username")) = "guest" And LCase(Request.Form("userpwd")) = "guest" Then Session("UserLoggedIn") = "true" Response.Redirect "protectedpage.asp" Else Response.Write("Login Failed.<br><br>") ShowLogin End If End Sub el codigo anterior chequeara para asegurarse de que se ha entrado el login correctamente. para configurar la Variable de Sesion "UserLoggeddln" igual a "" estamos basicamente desconectando al usuario. Lo unico que nos falta por hacer es escribir el codigo a poner en la cabecera de la pagina protegida para chequear y ver si el usuario esta logeado. Response.Expires = -1000 'Hace que el explorador no cree cache de esta pagina Response.Buffer = True 'activa el buffer para el contenido asi nuestro Response.Redirect trabajara If Session("UserLoggedIn") <> "true" Then Response.Redirect("login.asp") End If Ejemplo de lo anteriormente expuesto. codigo para login.asp[Top] <% Response.Expires = -1000 'Makes the browser not cache this page Response.Buffer = True 'Buffers the content so our Response.Redirect will work Session("UserLoggedIn") = "" If Request.Form("login") = "true" Then CheckLogin Else ShowLogin End If Sub ShowLogin %> <form name=form1 action=login.asp method=post> User Name : <input type=text name=username><br> Password : <input type=password name=userpwd><br> <input type=hidden name=login value=true> <input type=submit value="Login"> </form> <% End Sub Sub CheckLogin If LCase(Request.Form("username")) = "guest" And LCase(Request.Form("userpwd")) = "guest" Then Session("UserLoggedIn") = "true" Response.Redirect "protectedpage.asp" Else Response.Write("Login Failed.<br><br>") ShowLogin End If End Sub %> protectedpage.asp <% Response.Expires = -1000 'Makes the browser not cache this page Response.Buffer = True 'Buffers the content so our Response.Redirect will work If Session("UserLoggedIn") <> "true" Then Response.Redirect("login.asp") End If %> This page is password protected. If you are reading this you entered <br> the correct name and password. Traducción: Choco_cu |
Ahora les envio la segunda parte del sistema de usuario y contraseña con session segunda parte En la Primera parte les mostramos como hacer una simple interface de proteccion por password funcional para tu Sitio. En est'a parte vamos a explorar como agregar mensajes de error, pertimir que los usuarios se relogeen o sea se reconecten, y solicitar a la base de datos por el nombre de usuario y el password entrado. La primera cosa que haremos es agregar el codigo para permitir a los usuarios volver a logearse. Para hacerlo necesitamos chequear y ver que el usuario se encuentra logeado y agregar una nueva subrutina para manipular eso. Primero agregamos el codigo para chequear y ver si el usuario se mantiene conectado. el siguiente codigo necesita se agregado en la cabecera de la pagina de logeo. Este codigo dirigir'a lo que pasa cuando el usuario activa la pagina de logeo. login = Request.Form("login") If login = "login_again" Then Session("UserLoggedIn") = "" ShowLogin Else If Session("UserLoggedIn") = "true" Then AlreadyLoggedIn Else If login = "true" Then CheckLogin Else ShowLogin End If End If End If Este codigo(anterior) reemplaza este codigo (de abajo) de la primera parte If Request.Form("login") = "true" Then CheckLogin Else ShowLogin End If Luego agregaremos la subrutina. AlredadyLoggedln para decirle al usuario que estan logeado y preguntar si quieren volverse a logear. <% Sub AlreadyLoggedIn %> You are already logged in. Do you want to logout or login as a different user? <form name=form2 action=login2.asp method=post> <input type=submit name=button1 value='Yes'> <input type=hidden name=login value='login_again'> </form> <% End Sub %> he incluido un script de asp de apertura y cierre para delimitar porque in esa seccion de codigo hay una mescla de ASP y Html. Ahora para agregar el chequeo de errores necesitamos declarar una variable global para el mensaje de error, agregar el codigo para formatear el mensaje de error e imprimir el mensaje si sse necesita. Declarar la Variable para almacenar el mensaje de error cerca de la cabecera de la pagina de logeo. Dim Error_Msg Y agregamos este pequeño pedazo de codigo al inicio del formulario de logeo. Esto imprimira un mensaje de error si hay alguno. Response.Write(Error_Msg&"<br>") Ahora todo lo que nos falta por hacer es agregar el codigo para chequear el nombre de usuario y el password en una base de datos. Para hacerlo Reescribiremos la subrutina CheckLogin de la primera parte. Sub CheckLogin Dim Conn, cStr, sql, RS, username, userpwd username = Request.Form("username") userpwd = Request.Form("userpwd") Set Conn = Server.CreateObject("ADODB.Connection") cStr = "DRIVER={Microsoft Access Driver (*.mdb)};" cStr = cStr & "DBQ=" & Server.MapPath("\articles\asp\advanced\passwordhow to.mdb") & ";" Conn.Open(cStr) sql = "select username from UserTable where username = '" & LCase(username) & "'" sql = sql & " and userpwd = '" & LCase(userpwd) & "'" Set RS = Conn.Execute(sql) If RS.BOF And RS.EOF Then Error_Msg = "Login Failed. Try Again." ShowLogin Else Session("UserLoggedIn") = "true" Response.Redirect "protectedpage2.asp" End If End Sub ya esta hecho, puedes cortar y pegar el formulario del codigo de abajo y entonces acomodarlo a tu sitio nueva variante del sistema login2.asp [Top] <% Response.Expires = -1000 'Evita que el explorador haga una cache del sitio Response.Buffer = True 'activara el buffer para el contenido asi nuestro Response.Redirect trabajara Dim Error_Msg login = Request.Form("login") If login = "login_again" Then Session("UserLoggedIn") = "" ShowLogin Else If Session("UserLoggedIn") = "true" Then AlreadyLoggedIn Else If login = "true" Then CheckLogin Else ShowLogin End If End If End If Sub ShowLogin Response.Write(Error_Msg & "<br>") %> <form name=form1 action=login2.asp method=post> User Name : <input type=text name=username><br> Password : <input type=password name=userpwd><br> <input type=hidden name=login value=true> <input type=submit value="Login"> </form> <% End Sub Sub AlreadyLoggedIn %> Ya estas logeado. deseas logearte como un usuario nuevo? <form name=form2 action=login2.asp method=post> <input type=submit name=button1 value='Yes'> <input type=hidden name=login value='login_again'> </form> <% End Sub Sub CheckLogin Dim Conn, cStr, sql, RS, username, userpwd username = Request.Form("username") userpwd = Request.Form("userpwd") Set Conn = Server.CreateObject("ADODB.Connection") cStr = "DRIVER={Microsoft Access Driver (*.mdb)};" cStr = cStr & "DBQ=" & Server.MapPath("\home\codelib\howto\aspadvanced\pa sswordhowto.mdb") & ";" Conn.Open(cStr) sql = "select username from UserTable where username = '" & LCase(username) & "'" sql = sql & " and userpwd = '" & LCase(userpwd) & "'" Set RS = Conn.Execute(sql) If RS.BOF And RS.EOF Then Error_Msg = "Login Failed. Try Again." ShowLogin Else Session("UserLoggedIn") = "true" Response.Redirect "protectedpage2.asp" End If End Sub %> protectedpage2.asp[Top] <% Response.Expires = -1000 'Makes the browser not cache this page Response.Buffer = True 'Buffers the content so our Response.Redirect will work If Session("UserLoggedIn") <> "true" Then Response.Redirect("login2.asp") End If %> Esta es una pagina protegida por password. si estas leyendo esto has entrado<br> el nombre y el password correctos. |
RecordCount para MySql no se si ya exista una respuesta para esto, pero para los que no les funciona el RecordCount en MySql aqui hay una opción: <% Function RecCount(rsdef) intRows = rsdef.GetRows rsdef.MoveFirst RecCount = UBound(intRows,2) + 1 End Function . . . Tu Conexión . . response.write = RecCount(RS) %> A ver si se consiguen algo igual para el AbsolutePage :si: |
Actualizar una Base de Datos Dependiendo de un ID Cómo actualizar algunos campos ( o todos ) de una Base de Datos, dependiendo de un Valor Tomado de una Página Anterior. Cita:
IDAnterior= Valor tomado de una página Anterior Recuerda, sí Recoges un Valor desde una URL, lo tomas de la siguiente forma: Request.QueryString("valor") Recuerda, sí Recoges un Valor desde un Formulario, lo tomas de la siguiente forma: Request.Form("valor") Saludos |
FORMATO DE FECHAS SENCILLO PERO "AGRADABLE" <%= formatdatetime((now),vblongdate) %> Te Desplegara una Fecha tipo: Lunes, 22 de Enero del 2004 Saludos |
Administrador de Base de Datos OnLine en ASP con esto, podras manejar o controlar tu base de datos desde internet. Podrás compactarla, crear tablas, campos, modificar valores, hacer querys de sql, etc. disfrutenla DBAdmin Link |
Agilizando la carga de tus páginas ASP II 10 tips para optimizar ADO 1.- Evitar Actualizaciones a traves de RecordSets. Debido a que el propósito del RecordSet es brindar consultas más rápidas a través de la opción de RecordSet Desconectados, minimizando las conexiones. 2.- Utilizar Stored Procedures. Es mejor debido a que ya se encuentra compilado en el Server y además de tener mayor prioridad, tiene más fácil mantenimiento y seguridad 3.- Crear el Minimo RecordSet. En otras palabras, seleccionar segun el tipo de operacion que se va realizar el tipo de recordset (Cursor Type o Cursor Location)a abrir 4.- Usar RecordSets Desconectados. Logicamente para economizar conexiones y para presentar consultas mas rapidas. 5.- Define Comandos Parametrizados. Segun lo que entendi es que al definirlos de esta forma lo que se envia al servidor es una colecciones de Parametros que optimiza la ejecución de Stored Procedure. 6.- Encapsula El Aceso a la Data. Obviamente se refiere a trabajar con componentes. 7.- Use el Data Shaping para retornar datos de Cabecera y detalle. Debido a que significa menos trafico de red y menor consumo de recursos para el cliente. 8.- Use el MTS 9.- Use Parametros de Salida. Cuando un stored devuelve un valor o un RecordSet se recomienda devolverlo como parametro de salida debido a que se evita el crear un nuevo objeto. 10.- Obtenga solo la data que se requiere. Solo debemos extraer las columnas o filas, osea no debemos tomar toda la tabla sino los valores necesarios. (***hasta aquí sacado de http://www.telecable.es/personales/j...n/res00456.htm sacado a su vez de Visual Basic Programmer Journal) Unas cuantas cosas más: -Liberar recordsets y conexiones en cuanto se pueda, no al final del script, como se dice por ahí. -Evidentemente, y si es posible, usar SQLServer o Mysql u otra base de datos "de verdad". evitar access, que no está preparado para muchas conexiones concurrentes. -No usar el mismo nombre de objeto para distintos queries en el mismo script. SQLServer crea un procedimiento almacenado temporal por cada petición y puede ser que el usar el mismo nombre de objeto se provoque una caída del sistema. Sobre todo trabajando con procedimientos almacenados parametrizados. -Usar recordsets forward-only,read-only siempre que sea posible. -Huye como del diablo de las sentencias tipo "SELECT * FROM TABLA", especifica siempre los nombres de los campos. -Usa providers OLEDB nativos siempre que sea posible.No uses providers OLEDB para fuentes ODBC. -Procura que las cadenas de conexión a la base de datos (si es que tienes más de una) sean EXACTAMENTE iguales, ya que ADO hace una comparación carácter a carácter de las conexiones para colocarlas o recharzarlas en la pila de peticiones. La mejor manera de evitar ésto es poner la conexión en un include o en una variable Application en Global.asa -No guardes objetos connection o recordset en variables Session o Application. Hacer ésto machaca mucho la escalabilidad de la aplicación, porque las peticiones a la conexión o al recordset son ejecutadas en serie y, así, una página ASP debería esperar hasta que ninguna otra esté usando el recurso para poderlo utilizar. Es infinitamente mejor crear la conexion y el recordset en cada página y destruirlos antes de que el script termine. -Usa conexiones sin DSN. -Cuando uses providers nativos OLEDB, No uses ficheros de conexión UDL. -Poner los tags <%%> en la misma línea reduce la sobrecarga de la página, ya que el motor ASP no tiene que interpretar los saltos de línea (las líneas las lee carácter a carácter) -todos conocemos las bondades de los comentarios, pero mejor no abusar de ellos por la misma razón que la anterior. BUENO, YA VALE POR HOY. UN SALUDO A TODOS :adios: (**fuente:Visual Basic Programmer Journal) |
Q: ¿Cómo puedo saber si estoy en un servidor seguro? R: Así: Código: <%if request.ServerVariables("SERVER_PORT_SECURE")=0 then%> |
Strings de Conexión P: ¿Cómo me conecto desde ASP con MySQL, ACCESS, SQL, DBF, etc? R: http://www.connectionstrings.com |
Sistema de Acceso con Clave ASP+Access P.: ¿Cómo implementar un sistema de acceso con clave seguro y vistoso? Y que además registre cuándo entran los usuarios, su IP, cómo localizar dónde se ubica la IP, mostrar un mensaje personalizado de bienvenida para el usuario, registrando accesos maliciosos o erróneos, y además felicitar al usuario si es su cumpleaños... todo esto y mucho más en .... :borracho: R: Utiliza una base de datos con tres tablas, una para guardar los accesos "buenos" otra para los "malos" (intentos o errores de los usuarios) y otra para ir poniendo los usuarios. (Descripción de la base de datos en notas, al final). Además, incluye la función "zorionak" (Felicidades en euskera) para lanzar un pop-up si es el cumpleaños del usuario. ("urtebete" [cumpleaños] es el campo de la tabla usuarios donde va la fecha dd/mm sin año, claro), usando una cadena u otra "zorion" ó "nozorion". Esto es muy vistoso y agradecido por los usuarios. :si: (Seguir el verde oscuro para este asunto) Combina todo esto con www.ip2location.com/free.asp que permite ver la localización (90% exacto) de la IP, y tendrás una página de acceso muy guay y bien controlada. :policia: (restringido a 20 consultas por día por IP) [acceso.asp]: <%if request.form("usuario")="" then response.redirect "entrada.htm" %> <%else 'eliminamos las posibles comillas de la entrada 'para evitar la introducción de sentencias SQL usuario=replace(request.form("usuario"),"'","") password=replace(request.form("password"),"'","") com=chr(34) Var_IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR") if Var_IP = "" then Var_IP = Request.ServerVariables("REMOTE_ADDR") end if Var_IP2 = Request.ServerVariables("REMOTE_HOST") IF Var_IP2 = "" then Var_IP2 = Request.ServerVariables("REMOTE_ADDR") end if zorion="<script language=JavaScript>function zorionak(){window.open('zorionak.htm','','top=100, left=100,width=415,height=294,scrollbars=No,locati on=No,menubar=No,resizable=no,status=No,directorie s=No,toolbar=No,copyhistory=No')}</script><body onload='zorionak()' bgcolor='#CCFFFF'>" nozorion="<body bgcolor='#CCFFFF'>" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../data/TABLA.mdb")) set rs = CreateObject("ADODB.Recordset") sqltxt="Select * from usuarios where usuario='"&usuario&"' and password= '"&password&"'" 'response.write sqltxt rs.Open sqltxt, conn if not rs.eof then ' nos ha devuelto un registro, ahora miraremos si es valido ' con ello evitamos el ataque típico SQL if rs("usuario")=usuario and rs("password")=password then ' si el usuario esta en la base de datos y la password coincide session("autorizacion")=1 Insertar = "INSERT INTO TablaAccesos (ID_Usuario, Fecha_Acceso, IP, IP2) VALUES ('"&usuario&"', '"&Now()&"', '"&Var_IP&"', '"&Var_IP2&"')" Conn.Execute(Insertar) IF RS("URTEBETE")=date() then Response.write "<html>..<head>" & zorion & "<table ...>Bienvenido: " & rs("nombre") & "</font>...</html>" else Response.write "<html>..<head>" & nozorion & "<table ...>Bienvenido: " & rs("nombre") & "</font>...</html>" end if end if else Insertar = "INSERT INTO BadAccesos (Bad_usuario, Bad_fecha, Bad_clave, Bad_IP, Bad_IP2) VALUES ('"&usuario&"', '"&Now()&"', '"&password&"', '"&Var_IP&"', '"&Var_IP2&"')" Conn.Execute(Insertar) session("autorizacion")=-1 end if rs.close set rs=nothing conn.close set conn=nothing if session("autorizacion")=-1 or session("autorizacion")="" then ' no hemos encontrado el registro ' eso indica que el usuario y/o la password son erroneos response.redirect "entrada.htm" end if end if%> [entrada.htm]: <html> ... <form method="POST" action="acceso.asp"> ... <input type="text" name="usuario" size="20"></td> ... <input type="password" name="password" size="20"> ... <input type="submit" value="Aceptar" name="B1"> ... </form> ... </html> [BASE DE DATOS]: TABLA.mdb ---->usuarios (tabla) [Aquí es donde vas poniendo los usuario a mano] -------->usuario (campo) -------->password (campo) -------->nombre (campo) ---->TablaAccesos (tabla) -------->ID_Usuario (campo) -------->Fecha_Acceso (campo) -------->IP (campo) ---->BadAccesos (tabla) -------->Bad_usuario (campo) -------->Bad_fecha (campo) -------->Bad_clave (campo) -------->Bad_IP (campo) Yo guardo una copia de esta base de datos en el disco duro, donde voy copiando los accesos y badaccesos y dejo la "original" vacía y la vuelvo a subir, para evitar que se vaya "inflando" y ralentice el asunto. Para ello, también es aconsejable, antes de guardar, en access: Herramientas -> Utilidades de la Base de Datos -> Compactar y Reparar Base de datos. Esto evita que access guarde información "fantasma" y reajusta el tamaño al mínimo justo y necesario. [A TENER EN CUENTA]: El response.write genera el código de la página restringida. Ten en cuenta que dentro de ese código no puedes usar comillas dobles ["], pero sí simple ['] y también el código ASCII de la comilla, que es chr(34) y lo tienes que poner así: Response.write "...código html hasta la comilla" & chr(34) & "código html después de la comilla..." Verás que yo lo he definido como "com", para abreviar, y poner sólo " & com & " Además, recuerdo que en el response.write no se pueden hacer saltos de línea, hay que poner el código todo seguido. [zorionak.htm]: una paginita con algo vistoso, hombre, no seas rancio ;-) , pero ten en cuenta los tamaños y posición con que se abre, que los marco en la variable "zorion", y pon los que te vengan bien a tí. p.s.: ¿esto es una FAQ o un manual? :borracho: |
Aqui Hay otro COMO PUEDO PASAR DATOS DE LA BASE DE DATOS ENTRE PAGINAS <a href=paginadestino?var=<%rs.fields("VARIABLE")%>>v er aqui</a> |
Como paginar una consulta en SQL 2k y ORDER BY Código: <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> |
Obtener el codigo de otras paginas con XML Este script sirve para tomar el codigo HTML de otras paginas para tomar informacion que podamos utilizar en nuestras paginas (no se si sea legal o no) pero este ejemplo es con el fin de utilizarlo para saber por ejemplo cotizaciones del dolar desde paginas de bancos, Pageranks desde paginas que dan el servicio ese, etc... En este ejemplo sirve para tomar el PR desde una pagina llamada OnlyPHP (¿que cosas no?) OJO, es en ASP :-D Código PHP: Código PHP: A la compra <%=FormatCurrency(CDbl(MID(DolarCompra,InStr(Dolar Compra,";")+1,LEN(DolarCompra))),2)%> A la venta <%=FormatCurrency(CDbl(MID(DolarVenta,InStr(DolarV enta,";")+1,LEN(DolarVenta))),2)%> espero les sirva y puedan adaptar a mas cosas, saludos |
¿Como hacer un sistema de valoración, ese con estrellitas que siempre vemos en la red? http://www.forosdelweb.com/showthrea...ema+valoracion |
Cita:
me debes los creditos :-D solo era una broma :arriba: |
Como seleccionar n Registros y mostrarlos simpre en distinto orden Solo para BD SQL SQL trae esta funcion muy util ahorra programación, ya me estaba buscando codigo para no mostrar siempre el mismo orden de los productos de portada pero con NEWID() lo tienes Código: SQL="SELECT TOP 6 * FROM pcm_productos ORDER By NEWID()" |
Y para MySQL Código: SQL="SELECT TOP 6 * FROM pcm_productos ORDER By rand()" |
Problemas Con Los Permisos De Carpetas En Windows PROBLEMAS CON LOS PERMISOS DE CARPETA?: sobre la carpeta (en IIS no, en la carpeta "física" del disco duro), botón derecho de ratón->propiedades->pestaña seguridad->agregar->avanzadas->buscar ahora seleccionar "todos"->aceptar->aceptar en la lista de permisos, seleccionar control total. Si no sale la pestaña seguridad, en cualquier carpeta de windows,menú herramientas->Opciones de carpeta->Ver->Configuración avanzada->Desactivar la opción "Utilizar uso compartido simple de archivos(recomendado) a ver si dejan de preguntarlo ya, jejeje |
Catalogo on-line combo.asp Código: <html>Código: <html>Código: <html>tabla articulos código (texto) familia (numérico) denominacion (texto) descripcion (memo) precio (numérico) imagen (texto) tabla familias id (autonumérico) familia (texto) imagenp (texto) Bueno y lo de agregar, eliminar o modificar articulos requiere un minimo conocimiento de ASP (osea es bastante minimo pues hasta yo lo se hacer y no digamos que se mucho jajajaj).... pero de todas formas si no saben hacerlo consulten en el foro :arriba: .... bueno eso saludos y suerte :adios: |
otro catalogo on line Aqui dejo el vinculo a tro sistema de catalogo online http://www.forosdelweb.com/showthrea...36#post1090636 Bueno solo faltaria lo de agregar, eliminar o modificar productos, pero eso requiere un minimo conocimiento de ASP (osea es bastante minimo pues hasta yo lo se hacer y no digamos que se mucho jajajaj).... pero de todas formas si no saben hacerlo consulten en el foro :arriba: .... bueno eso saludos y suerte :adios: |
variables dinamicas ¿Es posible declarar variables dinamicamente ? (variables dinamicas) Si, es posible. ¿Como? Así: Código: for x = 0 to 10 |
Whois con dominios .MX Por si a alguien le sirve hice un checador de whois para dominios .com.mx, .net.mx y .org.mx por si a alguien le sirve, es una adaptacion de uno que con sultaba los normales (sin mx) Solo enviale el dominio en la variable domain y extension en la variable suffix via query Se podria adaptar para mas tipos de dominios aparte de los mencionados, pero creo que puse los mas usados Código: <% |
Super Fast String Concatenation Pregunta: ¿Por qué me manda TimeOut al realizar una concatenación? Respuesta: Al realizar concatenamientos múltiples en secuencia, VBScript duplica la secuencia original y añade la secuencia nueva al final de esta. Entonces substituye la secuencia original por el nuevo. Esto puede ser una maniobra increíblemente costosa si estás construyendo una secuencia muy grande. La clase de StringBuilder hace esto mucho más eficiente. Aquí está un ejemplo de cómo utilizarla. VER FUNCION |
ajustar pop-up dependiendo la imagen(con base de datos) Código PHP: |
Cita:
Sin embargo si se presenta esta situacion: http://www.forosdelweb.com/showpost....20&postcount=3 nroesp=7777 valoresp=10 ''// creamos la variable variable_7777 con un valor 10 ??? execute("variable_" & nroesp & " =" & valoresp) response.write(Vartype(variable_&nroesp)) ''// Nos dira que es de tipo 8 response.write("<br>") response.write(TypeName(variable_&nroesp)) ''// Nos dira que es de tipo String response.write("<br>Valor : ") response.write(variable_&nroesp) ''// Nos devolvera el valor 7777 y no el 10, osea nos da el nroesp y no el valoresp response.write("<br>") |
¿Como subo varios ficheros a la vez sin componente? Upload sin componente para subir muchos archivos a la vez, este ejemplo tiene tres cajas de texto, pero si quieren pueden agregar todas las cajas de texto para subir mas archivos. Espero les sea útil. Saludos. <html> <head> <title>Cargador de archivos</title> </head> <body style="font-family: Arial; font-size: 9pt"> <p align="center"><b><font size="3">Cargador de archivos</font></b></p> <%@LANGUAGE="VBSCRIPT"%> <%response.buffer=true Func = Request("Func") if isempty(Func) Then Func = 1 End if Select Case Func Case 1 %> <table width="360" border="0" align="center"> <tr> <td> <div align="center"> Selecciona un archivo para subir. </div> </td> </tr> </table> <form enctype="multipart/form-data" action="tmp.asp?func=2" method="POST" id="form1" name="form1"> <table align="center"> <tr> <td> </td> </tr> <tr> <td><font color="#330066" size="2">Pulsa en el botón examinar y elige el archivo de tu ordenador. <br> Se cargará en el directorio actual.<br> <br> </font></td> </tr> <tr> <td><font color="#330066" size="2">Luego pulsa el botón subir.<br> <br> </font></td> </tr> <tr> <td><strong><font color="#330066" size="2">Nombre del archivo...</font></strong></td> </tr> <tr> <td><p><font size="2"> <input name="File1" size="30" type="file"> </font></p> <p><font size="2"> <input name="File12" size="30" type="file"> </font></p> <p><font size="2"> <input name="File13" size="30" type="file"> </font></p></td> </tr> <tr> <td align="left"><input type="submit" value="Subir"> <br> <br> </td> </tr> <tr> <td><font color="#330066" size="2">NOTA: Espera, recibirás una notificación cuando el archivo haya sido subido</font><font size="2">.<br> <br> </font></td> </tr> </table> <% 'Código ASP Case 2 ForWriting = 2 adLongVarChar = 201 lngNumberUploaded = 0 'Get binary data from form noBytes = Request.TotalBytes binData = Request.BinaryRead (noBytes) 'convery the binary data to a string Set RST = CreateObject("ADODB.Recordset") LenBinary = LenB(binData) if LenBinary > 0 Then RST.Fields.Append "myBinary", adLongVarChar, LenBinary RST.Open RST.AddNew RST("myBinary").AppendChunk BinData RST.Update strDataWhole = RST("myBinary") End if 'Creates a raw data file for with all data sent 'Uncomment for debuging. 'Set fso = CreateObject("Scripting.FileSystemObject") 'Set f = fso.OpenTextFile(server.mappath(".") & "\raw.txt", ForWriting, True) 'f.Write strDataWhole 'set f = nothing 'set fso = nothing 'get the boundry indicator strBoundry = Request.ServerVariables ("HTTP_CONTENT_TYPE") lngBoundryPos = instr(1,strBoundry,"boundary=") + 8 strBoundry = "--" & right(strBoundry,len(strBoundry)-lngBoundryPos) 'Get first file boundry positions. lngCurrentBegin = instr(1,strDataWhole,strBoundry) lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1 Do While lngCurrentEnd > 0 'Get the data between current boundry and remove it from the whole. strData = mid(strDataWhole,lngCurrentBegin, lngCurrentEnd - lngCurrentBegin) strDataWhole = replace(strDataWhole,strData,"") 'Get the full path of the current file. lngBeginFileName = instr(1,strdata,"filename=") + 10 lngEndFileName = instr(lngBeginFileName,strData,chr(34)) 'Make sure they selected at least one fi ' le. if lngBeginFileName = lngEndFileName and lngNumberUploaded = 0 Then Response.Write "<H2> Ha ocurrido el siguiente error.</H2>" Response.Write "Debes elegir un archivo para subir" Response.Write "<BR><BR>Pulsa el botón volver, realiza la corrección." Response.Write "<BR><BR><INPUT type='button' onclick='history.go(-1)' value='<< Volver' id='button'1 name='button'1>" Response.End End if 'There could be one or more empty file boxes. if lngBeginFileName <> lngEndFileName Then strFilename = mid(strData,lngBeginFileName,lngEndFileName - lngBeginFileName) 'Creates a raw data file with data between current boundrys. Uncomment for debuging. 'Set fso = CreateObject("Scripting.FileSystemObject") 'Set f = fso.OpenTextFile(server.mappath(".") & "\raw_" & lngNumberUploaded & ".txt", ForWriting, True) 'f.Write strData 'set f = nothing 'set fso = nothing 'Loose the path information and keep just the file name. tmpLng = instr(1,strFilename,"\") Do While tmpLng > 0 PrevPos = tmpLng tmpLng = instr(PrevPos + 1,strFilename,"\") Loop FileName = right(strFilename,len(strFileName) - PrevPos) 'Get the begining position of the file data sent. 'if the file type is registered with thebrowser then there will be a Content-Type lngCT = instr(1,strData,"Content-Type:") if lngCT > 0 Then lngBeginPos = instr(lngCT,strData,chr(13) & chr(10)) + 4 Else lngBeginPos = lngEndFileName End if 'Get the ending position of the file dat ' a sent. lngEndPos = len(strData) 'Calculate the file size. lngDataLenth = lngEndPos - lngBeginPos 'Get the file data strFileData = mid(strData,lngBeginPos,lngDataLenth) 'Create the file. Set fso = CreateObject("Scripting.FileSystemObject") 'Lo guarda en la carpeta actual Set f = fso.OpenTextFile(server.mappath(".\") & "/" & FileName, ForWriting, True) f.Write strFileData Set f = nothing Set fso = nothing lngNumberUploaded = lngNumberUploaded + 1 End if 'Get then next boundry postitions if any. lngCurrentBegin = instr(1,strDataWhole,strBoundry) lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1 loop Response.Write "Archivo subido<Br>" Response.Write lngNumberUploaded & " archivo ya está en el servidor.<BR>" Response.Write "<BR><BR><INPUT type='button' onclick='document.location=" & chr(34) & "Cargador de archivos.asp" & chr(34) & "' value='<< Volver' id='button'1 name='button'1>" End Select %></form> </body> </html> |
Como Escribir Un Archivo de Excel Ya Existente Aqui les va la solucion de como escribir en un archivo de excel ya existente y con cualquier tipo de datos TANTO ESTATICOS COMO DINAMICOS Código: Set appExcel = Server.CreateObject("Excel.Application")'Componente que se instala cuando posee office instalado sino NO SIRVE |
¿Como mandar mails a un celular? R: Les dejo el vinculo para que lo vean (no es mi topic ahi salen todos los usuarios que partisiparon para que no me saquen en cara los creditos.... jajajajaj broma para dobled) http://forosdelweb.com/showthread.ph...9&page=1&pp=20 |
Sobre componentes para el envio de emails:Aquí les dejo un resumen de la codificación de los diversos componentes de envío de email. Componente "CDONTS" 'Si lo usas en IIS (CDONTS object) Código: Set msMail = CreateObject("CDONTS.NewMail")'Si lo usas en IIS's (CDO object): Código: Dim conf'Si usas AspMail (http://www.serverobjects.com/) Código: Set msMail = Server.CreateObject("SMTPsvg.Mailer")'Si usas AspEmail 5.0 (http://www.aspemail.com/): Código: Set msMail = Server.CreateObject("Persits.MailSender")'Si usas Geocel DevMailer 1.5 (http://www.geocel.com/): Código: Set msMail = Server.CreateObject("Geocel.Mailer")'Si usas JMail (http://tech.dimac.net/) Código: Set msMail = Server.CreateOBject("JMail.Message")'Si usas DynuEmail (http://www.dynu.com/) Código: Set msMail = Server.CreateObject("Dynu.Email")'Si usas EasyMail 5 (http://www.easymailobjects.com/) Código: Set msMail = Server.CreateObject("EasyMail.SMTP.5") 'Si usas SA-SMTPMAIL (http://www.aspstudio.com/) Código: Set msMail = Server.CreateObject("SoftArtisans.SMTPMail")'Si usas ocxQmail (http://www.flicks.com/ocxQmail) Código: Set msMail = Server.CreateObject("ocxQmail.ocxQmailCtrl.1") |
¿Cómo pasar variables de ASP a FLASH? Flash buscará este formato: Response.Write("&variable1=valor&variable2=valor&variable3=valor&") El inicio y fin de la cadena deben ser con "&", y cada variable debe estar separada utilizando el mismo simbolo. Si el texto no es estático, y necesitas concatenar cadenas, entonces debes seguir el mismo formato, pero para que funcione correctamente tenés que ejecutar la película flash en el servidor, de otra forma no se mostrarán los valores. |
| La zona horaria es GMT -6. Ahora son las 12:14. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.