Scripts de ASP

Iniciado por Cobac, 17 Marzo 2004, 18:10 PM

0 Miembros y 1 Visitante están viendo este tema.

Cobac

 Aqui voy poniendo todos los scripts que tengo utiles de asp, para que los empleis y demás
PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.

Cobac

#1
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

<%
'definimos los arrays

dim elinks(20,2), ordenado(20), sección(4), cont, intermedia(2)
cont = 0

'nombre de las bases de las tablas que se van a abrir

sección(0) = "tv"
sección(1) = "games"
sección(2) = "nose"
sección(3) = "otro_mas"

for x=0 to 3 Step 1

strsql = "SELECT titulo, fecha FROM "& sección(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 "<br>"& x &" "& elinks(x,2) &" "& elinks(x,1) &"<br>"

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
PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.

Cobac

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
<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>


y luego en el archivo donde lo quieras mostrar pones esto

<%

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
%>


os buscara la imagen que se encuentra en la carpeta /numeros/pekeños/ y k sea gif
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.
PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.

Cobac

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
<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>


Archivo .asp donde se quiere mostrar

<%
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
%>


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.

Alguna duda o demas decidmelo.

Saludos y espero que os sea util.
PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.

Cobac

#4
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
<%
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
%>


Este es para enviar el boletin
enviarboletin.asp
<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>


send.asp<%

'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"%>


bueno solo puede enviar a 200 usuarios :P, si son mas tendreis que modificar el tamañao del array

salu2 y ya me contareis si os vale
PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.

Cobac

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

<%
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
%>


luego donde quieras que te aparezca lo de leer mas...

<%if len(noticia) > 350 then%>
<%="Leer mas...("& palabras &" palabras)"%>
<%end if%>


salu2
PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.

Cobac

#6
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)

<%
Dim edk, mb, mb2, elink
elink = "ed2k://|file|dev-ut45.X-Gamers.www!OSIOLEK!com.bin|764868048|909EB1BA30E06B9FF4D129D4CA52F6DE|/"
edk = Split(elink,"|",5)
%><br>
<%
mb = edk(3)/1048576
mb2 = Split(mb,",")
elink = mb2(1)
elink = mid(elink,1,2)
response.write "<br>Tamaño del archivo: "&mb2(0)&","&elink&" MB"
%>


este es con un ejemplo de un juego (el ut2004 XD)

pero si los elinks los sacais de una base de datos (lo mas normal ;)):

<%
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 "<br>Tamaño del archivo: "&mb2(0)&","&elink&" MB"
%>


bueno he puesto para que solo muestre dos decimales (casualmente como en el eMule)

salu2
PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.

Morris

Este sirve para indexar carpetas con ASP


<HTML>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#000000" VLINK="#000000">
<BR>
<B>Juegos a descargar</B><BR><BR>
<TABLE BORDER=0 CELLPADDING=3 CELLSPACING=0>
<TR BGCOLOR="#000000">
<TD><FONT COLOR="#FFFFFF"><B>Nombre del archivo:</B></FONT></TD>
<TD><FONT COLOR="#FFFFFF"><B>Tamaño:</B></FONT></TD>
<TD><FONT COLOR="#FFFFFF"><B>Tipo de archivo</B></FONT></TD>
<TD><FONT COLOR="#FFFFFF"><B>Fecha de creación</B></FONT></TD>
<%
' Crea una instancia del  FileSystemObject
Set MyFileObject=Server.CreateObject("Scripting.FileSystemObject")
' Crea el objeto folder
Set MyFolder=MyFileObject.GetFolder(Server.MapPath("shared"))
' Hace un loop entre todos los archivos
FOR EACH thing in MyFolder.Files
%>
<TR BGCOLOR="#F7F7E7">
<TD><A HREF="shared/<%=thing.Name%>"><%=thing.Name%></A></TD>
<TD ALIGN=RIGHT><%=thing.Size%>bytes</TD>
<TD><%=thing.Type%></TD>
<TD><%=thing.DateCreated%></TD>
<%
NEXT
%>
</TABLE>
</BODY>
</HTML>
Carta Poder
Ejemplos
Memorandum
Carta Recomendacion
www.ejemplode.com/12-clases_de_espanol/

Morris

¿Cómo conectarse a mySQL con ASP?

Tienes que instalar el driver más nuevo de mySQL ODBC, esta conexión no usa DSN.


<%@ LANGUAGE="VBSCRIPT" %>
<%

strConnection = "driver={MySQL ODBC 3.51 Driver};server=localhost;uid=USERNA,E;pwd=PASSWORD;database=BASEDEDATOS;option=3"
Set adoDataConn = Server.CreateObject("ADODB.Connection")
adoDataConn.Open strConnection

strQuery = "SELECT * FROM TABLA"
Set rs = adoDataConn.Execute(strQuery)

r_COLUMNA = rs("COLUMNA")
r_COLUMNA = rs("COLUMNA")
%>
Carta Poder
Ejemplos
Memorandum
Carta Recomendacion
www.ejemplode.com/12-clases_de_espanol/

alkonweb

Disculpa si mi comentario no te agrada ...pero lamento decirte que en mi opinion,muy personal ESTA WEB ES MUY BUENA.....PERO,  ;-)el bendito pero...deberian colocar la información de manera que sea facil bajarla y poder leerla sin necesidad de estar conectado todo EL TIEMPO...aqui en venezuela la INTERNET ...NO ES GRATIS.

Gracias, alkonweb. ;D