Usar asp como cgi-bin

Hola
Mi pregunta es la siguiente, se puede usar un asp como si fuese un cgi-bin, me explico, he visto en algunas páginas html este código o algo parecido
<img src="http://server.com/cgi-bin/Count.cgi?df=mywebl.dat" width="90" height="20">
Que debuelve el numero de visitas, se podria hacer
<img src="http://server.com/cgi-bin/Count.asp?df=mywebl.dat" width="90" height="20">
Si se puede, que tenfria que tener la página Count.asp
Gracias

1 respuesta

Respuesta
1
Esa operación la puedes hacer con un componente que genere una imagen dinámicamente
(ASPImage, ImageGlue, etc.), y un poco de código ASP.
Ejemplo:
<%
Set Image = Server.CreateObject("AspImage.Image")
Image.FontColor = vbBlack
Image.Italic = True
Image.Bold = True
Image.FontName = "Arial"
Image.FontSize = 12
Image.PadSize = 10
' Cada vez que entra alguien en la web, se incrementa en 1 el contador que está
' en mywebl.dat, de tal forma que accedemos mediante el objeto filesystem y leemos
' la cantidad que esté en el fichero.
num_accesos = Numero_Leido_de_mywebl_dat()
strMessage = num_accesos
Image.MaxX = Image.TextWidth (strMessage)
Image.MaxY = Image.TextHeight (strMessage)
Image.GradientOneWay vbRed, vbWhite, 0
Image. TextOut strMessage, Image.X, Image.Y, false
' grabamos la imagen en un directorio.
Image.FileName = "d:\inetpub\wwwroot\images\contador.gif"
Dim xml
Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
if Image.SaveImage then
' Hemos podido grabar la imagen
xml.Open "GET", "http://server.com/images/contador.gif", False
xml.Send
Response.ContentType = "image/gif"
Response.BinaryWrite xml.responseBody
else
' No hemo podido grabar la imagen
xml.Open "GET", "http://server.com/images/sin_contador.gif", False
xml.Send
Response.ContentType = "image/gif"
Response.BinaryWrite xml.responseBody
end if
Set xml = Nothing
%>
De tal forma que la llamada al fichero sería:
<img src="http://server.com/cgi-bin/Count.asp?df=mywebl.dat" width="90" height="20">
Muchas gracias
... Esto, se pude hacer algo parecido, ¿pero sin gráficos?
¿Cómo se tendría que hacer?
Sin gráfico bastaría con leer el fichero que almacena los datos y mostrar el resultado como:
response.write CInt(Funcion_lee_fichero())
<%
fp = Server.MapPath("aspcount.txt")
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.OpenTextFile(fp)
ct = Clng(a.ReadLine)
if Session("ct") = "" then
Session("ct") = ct
ct = ct + 1
a.close
Set a = fs.CreateTextFile(fp, True)
a.WriteLine(ct)
end if
a.Close
Response.Write ct
%>
O una solución intermedia sería tener loa diez números, leer
El dato, y montar la cifra en función del número que hallamos leído.
Muchas gracias por tu interés y por tu tiempo.
Me temo que me he explicado mal, lo que quiero es algo como el primer ejemplo pero en vez de con gráficos con texto.
Me explico en una página web normal meter un cgi-bin que llame a una página asp y que devuelva ese asp un texto, no un gráfico.
También me gustaría que me explicaras como se tendría que llamar
A ese cgi-bin para que presente el texto.
Gracias y perdona la paliza :)
Creo que no te estoy entendiendo, ya que en el último ejemplo que te he pasado se hace exactamente eso, se almacena en disco la cuenta, y se muestra la información.
Es la única forma, ya que al emplear una etiqueta img, sólo le puedes pasar formatos gráficos. No puedes escribir texto.
El ejemplo sería:
<%
Function actualizo_cuenta()
fp = Server.MapPath("mywebl.dat")
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.OpenTextFile(fp)
ct = Clng(a.ReadLine)
if Session("ct") = "" then
Session("ct") = ct
ct = ct + 1
a.close
Set a = fs.CreateTextFile(fp, True)
a.WriteLine(ct)
end if
a.Close
actualizo_cuenta = ct
End Function
' texto con la cuenta
Response.Write "<b>" & actualizo_cuenta & "</b>"
%>
Creo que el problema está en que no te he comentado lo que hace un cgi o un asp.
La llamada que me comentabas /cgi-bin/count.cgi , es una llamada a un fichero que lee la ruta del fichero del que va a sacar el texto y genera una imagen con esa información. Se almacena en el directorio cgi-bin, para centralizar los permisos en todos los ficheros de este tipo. Normalmente un cgi es un script en perl, c o bat, o fichero compilado (exe)
Un asp es una página que puede hacer las mismas funciones que los ficheros cgi, por lo que en si mismo un asp no es lo mismo que un cgi, tiene varias características que mejoran en rendimiento a los ficheros cgi.
Si quieres presentar el contador en modo texto, debes usar el último código que te pasé, que es lo que haría un cgi.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas