Aqui voy poniendo todos los scripts que tengo utiles de asp, para que los empleis y demás
Esta es una discusión para el tema Scripts de ASP en el foro Manuales Webmaster, bajo la categoría Dudas Webmaster; Aqui voy poniendo todos los scripts que tengo utiles de asp, para que los empleis y demás...
Página: 1
Aqui voy poniendo todos los scripts que tengo utiles de asp, para que los empleis y demás
Mostrar últimos 6 datos de 4 bases de datos
Bueno esto lo que os hace es abriros 4 tablas de una misma base de datos, donde selecciona los campos titulo y fecha, y luego ordena en un array los últimos 6 añadidos, se puede emplear para mostrar las últimas 6 descargas que tengais en distintas tablas en una misma base de datos
Código:<% 'definimos los arrays dim elinks(20,2), ordenado(20), seccion(4), cont, intermedia(2) cont = 0 'nombre de las bases de las tablas que se van a abrir seccion(0) = "tv" seccion(1) = "games" seccion(2) = "nose" seccion(3) = "otro_mas" for x=0 to 3 Step 1 strsql = "SELECT titulo, fecha FROM "& seccion(x) &" ORDER BY fecha DESC " Set oConn = Server.CreateObject("ADODB.Connection") oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("\base.mdb") Set RS = Server.CreateObject("ADODB.Recordset") RS.Open strSQL, oConn,3,1 for y=0 to 4 Step 1 elinks(cont,1) = rs("titulo") elinks(cont,2) = rs("fecha") cont = cont + 1 RS.MoveNext Next Next 'limpiamos todo RS.Close Set RS = Nothing oConn.Close Set oConn = Nothing 'ordenamos el array bidimensional elinks for x=0 to 19 Step 1 for y=x+1 to 19 Step 1 if elinks(x,2) < elinks(y,2) then *intermedia(1) = elinks(x,1) *intermedia(2) = elinks(x,2) *elinks(x,2) = elinks(y,2) *elinks(x,1) = elinks(y,1) *elinks(y,1) = intermedia(1) *elinks(y,2) = intermedia(2) * End if Next Next 'mostramos los 6 primeros resultados, que serían los 6 mas nuevos for x=0 to 5 Step 1 response.write " "& x &" "& elinks(x,2) &" "& elinks(x,1) &" " Next %>
Si quereis que se abran mas tablas hay que modificar un par de cosas, si teneis alguna duda decidmelo que os respondere encantado
salu2
Visitas reales de una pagina
Os pongo un contador en asp, que he realizado yo y lo tengo en mi web , ademas te muestra los numeros como imagenes, osea que tu tienes que tener 10 imagenes .gif que van desde 0 hasta 9 y ya tienes el contador hecho.
Archivo global.asa
y luego en el archivo donde lo quieras mostrar pones estoCódigo:<script language=vbscript runat=server> Sub Application_OnStart Application("Activos") = 0 set fso = createobject("scripting.filesystemobject") set act = fso.opentextfile(server.mappath("contador.txt")) Application("contador") = clng(act.readline) act.Close End Sub Sub Application_OnEnd End Sub Sub Session_OnStart If Request.Cookies ("contador") <> "" Then Else Application.Lock set fso = createobject("scripting.filesystemobject") set act = fso.opentextfile(server.mappath("contador.txt")) Application("contador") = Application("contador") + 1 Set act = fso.CreateTextFile(server.mappath("contador.txt"), true) act.WriteLine(Application("contador")) act.Close Application.Unlock Response.Cookies("contador")="visitado" Response.Cookies("contador").Expires = now() + 5 End If End Sub Sub Session_OnEnd End Sub </script>
os buscara la imagen que se encuentra en la carpeta /numeros/pekeños/ y k sea gifCódigo:<% dim n dim m dim c(20) for n=1 To len(Application("contador")) Step 1 c(n-1)=(mid(Application("contador"),n,1)) Next for m=0 To n-2 Step 1 response.write ("<img src=/numeros/pekeños/"& c(m) &".gif hspace=0 width=13 height=19>") Next %>
por ejemplo tienes 123 visitas pues esto kedaria asi en html
<img src=/numeros/pekeños/1.gif hspace=0 width=13 height=19>
<img src=/numeros/pekeños/2.gif hspace=0 width=13 height=19>
<img src=/numeros/pekeños/3.gif hspace=0 width=13 height=19>
si tieneis algun problema o duda decidmelo
P.D.: la cookie dura 5 dias desde el dia de su creacion, y para guardar las visitas crea un archivo llamado contador.txt en la carpeta raiz (cambiale los permisos -CHMOD- para que todos puedan leer y escribir) y le pones de valor inicial 0.
Contador usuarios activos
Bueno ahora os pongo uno para mostrar los usuarios activos de la web, las imagenes son igual que antes, sirven las mismas, solo que el global.asa cambia un poco, y la manera de mostrarlo solo es cambiar el nombre de la variable.
Archivo global.asa
Archivo .asp donde se quiere mostrarCódigo:<script language=vbscript runat=server> Sub Application_OnStart End Sub Sub Application_OnEnd End Sub Sub Session_OnStart Application.Lock Application("Activos") = Application("Activos") + 1 Application.Unlock End Sub Sub Session_OnEnd Application.Lock Application("Activos") = Application("Activos") - 1 Application.Unlock End Sub </script>
Bueno para que lo entendais un poco os lo explico, en el global.asa cuando un usuario entra en nuestra web se le crea una sesion (de una duracion de 20 min si no especificamos otro tiempo) al iniciar la sesion la variable "Activos" que es una variable general (no como otras que solo son de una pagina) aumenta en 1, entonces por cada usuario que entra solo tenemos que aumentar esa variable y cuando acaba la sesion se disminuye la variable.Código:<% dim a dim b dim d(20) for b=1 To len(Application("Activos")) Step 1 d(b-1)=(mid(Application("Activos"),b,1)) Next for a=0 To b-2 Step 1 response.write ("<img src=/numeros/pekeños/"& d(a) &".gif hspace=0 width=13 height=19>") Next %>
Alguna duda o demas decidmelo.
Saludos y espero que os sea util.
Enviar un boletin
Este consta de varios archivos, es bastante largo, si no entendeis algo ya me lo direis, la base de datos se llama boletin.mdb y tiene una tabla llamada usuarios, con un campo ID autonumerico (la clave principal) y otro campo destino memo.
este primero es para insertar un usuario para enviarle los emails
inscribirte.asp
Este es para enviar el boletinCódigo:<% Const adOpenKeyset = 1 Const adLockOptimistic = 3 destino = Trim(Request.Form("destino")) 'si no se ha rellenado el campo if destino = "" then %> <html> <head> <title>SUBSCRIPCION AL BOLETIN</title> </head> <body> <form method=post action=inscribirte.asp> Correo: <input type="text" name="destino" size="40"> <input type="submit" value="Enviar" name="B1"><input type="reset" value="Restablecer" name="B2"></p> </form> </body> </html> <% else Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\boletin.mdb")) set rs=createobject("ADODB.Recordset") rs.CursorType = adOpenKeyset rs.LockType = adLockOptimistic rs.open "usuarios",conn rs.addnew rs("destino")=destino rs.update rs.close response.write "<center><font color=#000000 size=2>Usuario añadido</font></center>" End if %>
enviarboletin.asp
send.aspCódigo:<html> <body> <form method=post action=send.asp> Mensaje: <textarea rows="20" name="Mensaje" cols="70"></textarea> <input type="submit" value="Enviar" name="B1"><input type="reset" value="Restablecer" name="B2"></p> </form> </body> </html>bueno solo puede enviar a 200 usuarios , si son mas tendreis que modificar el tamañao del arrayCódigo:<% 'origen del mensaje Origen = "boletin@tudireccion.org" 'asunto del mensaje Asunto = "Boletin de tudireccion.org" Mensaje = request.form("mensaje") dim array(200) dim x dim total x = 0 strsql = "SELECT * FROM usuarios" 'la ruta y el nombre de la base de datos Set oConn = Server.CreateObject("ADODB.Connection") oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("\boletin.mdb") Set RS = Server.CreateObject("ADODB.Recordset") 'la abrimos RS.Open strsql, oConn,3,1 Do while not RS.eof array(x) = RS("destino") x = x + 1 RS.MoveNext Loop total = x-1 RS.Close oConn.Close Set RS = nothing Set oConn = nothing * for x=0 to total Step 1 'Creamos una instancia del objeto CDO Set ObjetoCDO = Server.CreateObject("CDONTS.NewMail") 'Asignamos las propiedades al objeto ObjetoCDO.From = Origen ObjetoCDO.To = array(x) ObjetoCDO.Subject = Asunto ObjetoCDO.Body = Mensaje 'Enviamos el e-mail ObjetoCDO.Send 'Destruimos el objeto Set ObjetoCDO = Nothing 'nos movemos al proximo registro Next %> <%="el email a sido enviado con exito"%>
salu2 y ya me contareis si os vale
Contar longitud de un texto
Este se emplea para mi web en noticias informatica, te cuenta las palabras que hay, y si hubiera menos de 350 carácteres, entonces no te saldria lo de leer mas...
Osea te cuenta las palabras, y si el texto tiene menos de 350 carácteres no te sale para leer mas, si tiene más de 350 carácteres te muestra los 300 primeros y lo demas no
luego donde quieras que te aparezca lo de leer mas...Código:<% noticia = rs("noticia") palabras = 0 espacio = 0 if len(noticia) > 350 then * *contenido = mid(noticia,1,300) * *response.write contenido&"..." for x = 0 to len(noticia) Step 1 espacio = mid(noticia,x+1,1) *if espacio = " " then * palabras = palabras + 1 *end if next else response.write noticia end if %>
salu2Código:<%if len(noticia) > 350 then%> <%="Leer mas...("& palabras &" palabras)"%> <%end if%>
Quiero que cuando añada un elink me ponga automaticamente el tamaño de este
Bueno esto es algo que he descubierto hoy (no sabia que el tamaño se encontraba en el mismo elink xD)
este es con un ejemplo de un juego (el ut2004 XD)Código:<% Dim edk, mb, mb2, elink elink = "ed2k://|file|dev-ut45.X-Gamers.www!OSIOLEK!com.bin|764868048|909EB1BA30E06B9FF4D129D4CA52F6DE|/" edk = Split(elink,"|",5) %> <% mb = edk(3)/1048576 mb2 = Split(mb,",") elink = mb2(1) elink = mid(elink,1,2) response.write " Tamaño del archivo: "&mb2(0)&","&elink&" MB" %>
pero si los elinks los sacais de una base de datos (lo mas normal ):
bueno he puesto para que solo muestre dos decimales (casualmente como en el eMule)Código:<% Dim edk, mb, mb2, elink elink = rs("ed2k") edk = Split(elink,"|",5) mb = edk(3)/1048576 mb2 = Split(mb,",") elink = mb2(1) elink = mid(elink,1,2) response.write " Tamaño del archivo: "&mb2(0)&","&elink&" MB" %>
salu2