miércoles 22 de octubre de 2008

Saber cotizacion del Dolar-Peso MX con ASP

Existiran algunas veces en las que necesites saber el precio actual del dolar en pesos, para esto puedes usar informacion de algunos bancos, en este caso utilizo la de HSBC, una vez obtenida la info pues podras hacer con ella cuentas o lo que quieras con ella.

El sistema funciona con el siguiente codigo:

Response.Buffer = True
Set xml = Server.CreateObject("Microsoft.XMLHTTP")
xml.Open "GET", "http://dsrefa01.hsbc.com.mx/aptrix/InternetPub.nsf/Content/TasasSplash", False
xml.Send
Cadena = CSTR(xml.responseText)
PosIni1 = InStr(Cadena,"DOLAR AMERICANO")
PosIni2 = InStr(PosIni1,Cadena,"$")
PosFin = InStr(PosIni2, Cadena,"<") DolarCompra = MID(Cadena, PosIni2, PosFin-PosIni2) PosIni1 = PosFin PosIni2 = InStr(PosIni1,Cadena,"$") PosFin = InStr(PosIni2, Cadena,"<") DolarVenta = MID(Cadena, PosIni2, PosFin-PosIni2) Set xml = Nothing

El resultado quedara en las variables DolarCompra y DolarVenta

Espero te sirva de algo

Ver post completo...

Whois con ASP

Muchos me han preguntado como se puede hacer un Whois para sus paginas, he aqui uno, que utiliza datos de internic y de Nic Mexico (aunque parece que han cambiado los de NIC y ya no se muestra como antes).

Este whois sirve para checar la disponibilidad de los dominios.

'Poner tiempo de espera a 90seg
Server.ScriptTimeout = 90

'Whois function to query the whois server
Private Function whoisResult(whoisURL, strMethod, strResultsStart, strResultsEnd)

'Dimension variables
Dim objXMLHTTP
Dim strWhoisResultString

Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")

objXMLHTTP.Open strMethod, whoisURL, False

objXMLHTTP.Send

strWhoisResultString = objXMLHTTP.ResponseText

If Len(strDomainName) < whoisresult = "No Valido - debe tener por lo menos 3 caracteres" whoisresult = "A ocurrido un error" whoisresult =" resultFormater(strWhoisResultString," objxmlhttp =" Nothing" lngresultsstartpos =" InStr(1," lngresultsendpos =" InStr(lngResultsStartPos," lngresultsstartpos ="<" lngresultsendpos =" lngResultsStartPos" resultformater =" Trim(Mid(strWhoisResultString," intloopcounter =" 0" strtextinput =" Replace(strTextInput," intloopcounter =" 46" strtextinput =" Replace(strTextInput," intloopcounter =" 58" strtextinput =" Replace(strTextInput," intloopcounter =" 123" strtextinput =" Replace(strTextInput," characterstrip =" strTextInput"> "" Then

strDomainName = LCase(strDomainName)

strDomainName = Replace(strDomainName, "http://", "", 1, -1, 1)
strDomainName = Replace(strDomainName, "www.", "", 1, -1, 1)

strDomainName = Replace(strDomainName, ".com", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".net", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".org", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".info", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".biz", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".tv", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".name", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".co.uk", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".org.uk", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".ltd.uk", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".plc.uk", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".net.uk", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".me.uk", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".pn.uk", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".com.mx", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".net.mx", "", 1, -1, 1)
strDomainName = Replace(strDomainName, ".org.mx", "", 1, -1, 1)

If Left(strDomainName, 1) = "-" Then strDomainName = Mid(strDomainName, 2, Len(strDomainName))
If Right(strDomainName, 1) = "-" Then strDomainName = Mid(strDomainName, 1, Len(strDomainName)-1)

strDomainName = Replace(strDomainName, "--", "-", 1, -1, 1)

strDomainName = characterStrip(strDomainName)
End If

If strDomainName <> "" Then
Response.Write("
")

Response.Write("Resultados de la busqueda de
www." & strDomainName & strSuffix & "


")

If strSuffix = ".com" Then
Response.Write(whoisResult("http://www-whois.internic.net/cgi/whois?whois_nic=" & strDomainName & ".com&type=domain", "GET", "
", "
"))

ElseIf strSuffix = ".net" Then
Response.Write(whoisResult("http://www-whois.internic.net/cgi/whois?whois_nic=" & strDomainName & ".net&type=domain", "GET", "
", "
"))

ElseIf strSuffix = ".org" Then
Response.Write(whoisResult("http://www-whois.internic.net/cgi/whois?whois_nic=" & strDomainName & ".org&type=domain", "GET", "
", "
"))

ElseIf strSuffix = ".biz" Then
Response.Write(whoisResult("http://www-whois.internic.net/cgi/whois?whois_nic=" & strDomainName & ".biz&type=domain", "GET", "
", "
"))

ElseIf strSuffix = ".info" Then
Response.Write(whoisResult("http://www-whois.internic.net/cgi/whois?whois_nic=" & strDomainName & ".info&type=domain", "GET", "
", "
"))

ElseIf strSuffix = ".com.mx" Then
Response.Write(whoisResult("http://www.sitiosweb.com.mx/whois/example.php?domain=" & strDomainName & strSuffix & "&domain_type=1&template_type=&object_type_1=&object_type_2=&object_type_3=3&text=" & strDomainName & "&current_page=Busqueda.Who_Is_2", "GET", "Este dominio esta disponible"))

ElseIf strSuffix = ".net.mx" Then
Response.Write(whoisResult("http://www.sitiosweb.com.mx/whois/example.php?domain=" & strDomainName & strSuffix & "&domain_type=3&template_type=&object_type_1=&object_type_2=&object_type_3=3&text=" & strDomainName & "&current_page=Busqueda.Who_Is_2", "GET", "Este dominio esta disponible"))

ElseIf strSuffix = ".org.mx" Then
Response.Write(whoisResult("http://www.sitiosweb.com.mx/whois/example.php?domain=" & strDomainName & strSuffix & "&domain_type=5&template_type=&object_type_1=&object_type_2=&object_type_3=3&text=" & strDomainName & "&current_page=Busqueda.Who_Is_2", "GET", "Este dominio esta disponible"))
End If

Response.Write("
")
End If


Espero les sirva

Ver post completo...

Contar resultados en MySQL y ASP

Normalmente cuando comenzamos a programar en ASP comenzamos con tablas Access, las cuales son muy utiles hasta cierto punto, cuando ya has migrado a MySQL (Muy recomendable) algunas cosas cambian, como el hecho de mostrar los resultados de una consulta.

En Access usamos algo asi:
SQL="Select * From TABLA"
RS.Open SQL, oConn,1,1
cuantos=RS.RecordCount


Pero en MySQL la cosa cambia, si usamos esa tecnica el resultado sera un horrible -1, para corregir esto hay que usar lo siguiente:


Simplemente agrega esto:
RS.CursorLocation = 3


Antes del RS.Open

Y Walaa, espero te sirva.

Ver post completo...

lunes 29 de septiembre de 2008

Funcion para convertir entre ASCII y Caracteres en ASP

Esta funcion puede servir para por ejemplo cuando queremos hacer una validacion de usuarios respetanto mayusculas y minusculas (cosa que no hace ASP). Tenemos la opcion de convertir los caracteres por su valor en ASCII y viceversa, la funcion es:


Function StringToAscii(str)
Dim result, x
StringToAscii = ""
If Len(str)=0 Then Exit Function
If Len(str)=1 Then
result = Asc(Mid(str, 1, 1))
StringToAscii = Left("000", 3-Len(CStr(result))) & CStr(result)
Exit Function
End If
result = ""
For x=1 To Len(str)
result = result & StringToAscii(Mid(str, x, 1))
Next
StringToAscii = result
End Function

Function AsciiToString(str)
Dim result, x
AsciiToString = ""
If Len(str)<3 Then Exit Function
If Len(str)=3 Then
AsciiToString = Chr(CInt(str))
Exit Function
End If
result = ""
For x=1 To Len(str) Step 3
result = result & AsciiToString(Mid(str, x, 3))
Next
AsciiToString = result
End Function

'usage
Dim myString, strASCII
myString = "hello world"
strASCII = StringToAscii(myString)
Response.Write("original string: " & myString & "
")
Response.Write("ASCII: " & strASCII & "
")
Response.Write("back to string: " & AsciiToString(strASCII) & "
")

Etiquetas:

Ver post completo...

sábado 7 de junio de 2008

Tips para Firefox

Todos hemos adoptado a nuestro navegador (browser) favorito, el mio es Firefox por muchas razones que no son el tema de este post profundizar. Para los que como yo han adoptado a este navegador o lo usan eventualmente les paso unos tips de configuracion para que su uso sea todavia mejor. Para esto consideraremos la version en español de Firefox, si usas la version en ingles no creo que tengas problemas para encontrar las opciones.

Más espacio en pantalla.
Si quieres tener mas espacio en tu pantalla de navegacion te recomiendo que reduzcas el tamaño de los iconos del mismo, para esto ve a Ver / Barras de herramientas / Personalizar / Usar iconos pequeños.

Atajos de teclado.
Aqui te muestro algunos atajos del teclado para el navegador:
* Barra espaciadora (Avanzar en la pagina)
* Shift-Barra espaciadora (Subir en la pagina)
* Ctrl+F (Buscar)
* Alt-N (Buscar siguiente)
* Ctrl+D (Marcadores)
* Ctrl+T (Nueva pestaña)
* Ctrl+K (Ir a la caja de busqueda)
* Ctrl+L (Ir a la caja de direccion)
* Ctrl+= (incrementar tamaño de texto)
* Ctrl+- (reducir tamaño de texto)
* Ctrl-W (cerrar pestaña)
* F5 (recargar)
* Alt-Home (Ir a la pagina de inicio)

Auto-completar.
Este es otro atajo del teclado muy interesante pero comunmente no utilizado, hay que irnos a la barra de direccion (Ctrl + L) y escribe un nombre como por ejemplo google y despues presiona Ctrl + Enter para agregar a lo escrito el www. y el .com. con lo que nos quedara completa la url (www.google.com).

Para mas opciones de extensiones usa Shift + Enter para .net y para .org Shift + Ctrl + Enter.

Navegar por las pestañas.
Para movernos entre las pestañas usa las siguientes combinaciones:
* Ctrl+Tab (Intercambiar entre las pestañas hacia adelante)
* Ctrl+Shft+Tab (Intercambiar hacia atras en las pestañas)
* Ctrl+1-9 (Selecciona el numero de saltos entre las pestañas)

About:config
Un poderoso editor de configuracion de nuestro navegador esta en el mismo, tecleando about:config en la barra de direccion. Para opciones de este editor visita http://mozillazine.org/misc/about:config/

Acelera tu Firefox.
Si usas banda ancha para conectarte a internet (como la mayoria) puedes usar una seccion de la configuracion llamada pipeline para acelerar la carga y navegacion por las paginas, para esto has lo siguiente:

* Escribe “about:config” en la barra de direccion y presiona Enter. Escribe “network.http” en el campo de Filtro, y cambia la siguiente configuracion (doble click sobre la opcion a cambiar):
* Pon “network.http.pipelining” a “true”
* Pon “network.http.proxy.pipelining” a “true”
* Pon “network.http.pipelining.maxrequests” a un numero como 30. Esto permite realizar 30 solicitudes al mismo tiempo.
* Ahora, click derecho en una parte en blanco y selecciona Nuevo-> Entero. Nombralo “nglayout.initialpaint.delay” y pon el valor en "0″. Este valor es el tiempo que el navegador esperara entre la espera y la muestra de la informacion recibida.

Limitar el uso de RAM.
Si Firefox consume mucha memoria en tu maquina puedes limitar la RAM permitida para el uso del navegador, en about:config ingresa browser.cache y selecciona “browser.cache.disk.capacity” y ponle la cantidad de memoria que desees asignarle intenta poner 15000 si tienes entre 512mb y 1gb de memoria.

Reducir el uso de RAM al minimizar.
Con esto puedes liberar memoria utilizada por el navegador cuando este se minimiza, para ello ingresa al editor about:config y crea un nuevo registro (Click derecho / Nuevo -> Logico) y nombralo "config.trim_on_minimize" y con valor TRUE y reinicia Firefox.

Remover el boton Cerrar pestaña
Si continuamente cierras por accidente pestañas o simplemente quiere quitar el boton de cerrado de pestañas de las mismas haz lo siguiente, en el editor about:config busca la opcion “browser.tabs.closeButtons” y selecciona un valor de los siguientes:

* 0: Mostrar el boton de cerrado en la pestaña activa solamente.
* 1: (Default) Mostrar boton de cerrar en todas las pestañas
* 2: No mostrar el boton de cerrado en ninguna pestaña
* 3: Mostrar un boton de cerrado al final de la barra de pestañas

Ver post completo...

martes 30 de octubre de 2007

Quitar marcos y activar Flash en IE

Resulta muy molesto que debido a problemas de intereses ahora el IE (Internet Explorer) bloquee de alguna manera los Flash de las paginas web obligandonos a activarlo con un click encima de la animación o bien presionando la barra espaciadora o Enter para que quede disponible para usarlo.

Se conocen varios hacks para evitar esto, a mi el que me ha funcionado muy bien es este metodo:
1.- Descargar el archivo flashobject.js

2.- Agregar la incursion del mismo en la pagina asi:
<type="text/javascript" src="flashobject.js"></script>
Entre las etiquetas <HEAD></HEAD>

3.- Llamar a nuestro flash con el siguiente codigo:
<id="top">
<!--Flash -->
</div>
<type="text/javascript">
var mymovie = new FlashObject("top.swf", "top", "750", "350", "7", "");
mymovie.addParam("menu", "false");
mymovie.write("top");
</script>

cambiando lo que esta en negritas y que se refiere al archivo, ancho y alto respectivamente y listo, el flash deberá ahora mostrarse sin el molesto marco ni tener que activarlo.

Etiquetas:

Ver post completo...

viernes 7 de julio de 2006

"Includes" con JS usando XML

Muchas veces tenemos paginas en servidores que no soportan los Server Side Includes, con este script podemos agregar una pagina como un include pero siendo Client Side Include :-D .

NOTA: Algunos servidores, sobretodo gratuitos marcan un error con este script, por lo que no se garantiza que a todos les sirva

Para instalar el script coloca lo siguiente entre las etiquetas <head></head>

<script type="text/javascript">
function include(xUrl,xId) {

var xmlhttp = false;

/*@cc_on @*/

/*@if (@_jscript_version >= 5)

// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.

try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

/*@end @*/

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}

xmlhttp.open("GET", xUrl,true);
xmlhttp.onreadystatechange=function() {

if (xmlhttp.readyState==4) {
document.getElementById(xId).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null)

}
</script>



Y ahora llamamos la funcion asi:
<div id="'xjam"></div>
<script type="text/javascript">
include('contenido.htm', "xjam");
</script>


Donde cambiaremos el archivo a incluir que es lo marcado en negritas

Etiquetas: , , , , , ,

Ver post completo...

jueves 22 de junio de 2006

PNG y sus transparencias en IE

De muchos es sabido que el IE no trabaja bien las transparencias de los archivos PNG que las contengan, esta es una de las tantas fallas del IE, pero pues todo tiene solucion y esta es algo facil de implementar y corregir, existen PNG's que podemos usar como imagenes dentro de la pagina o bien como fondos, para ambos casos tenemos las mismas opciones
  1. Usar GIF's aunque perdamos calidad
  2. Utilizar otro navegador como el Mozilla Firefox y tirar el IE a la basura
  3. Implementar un pequeño script para solucionar esta falla
Para la opcion 1 pues habria que tener en cuenta que el archivo GIF no te dara la calidad de los PNG's, ademas de que estos solo soportan un canal de transparencia, por lo que no podrias hacer degradados transparentes.

Para la segunda pues que mas quisieramos los diseñadores que pudiera tomarse como una opcion, en realidad hay mucha gente que usa el navegador que viene con su sistema operativo y no le interesa probar algun otro por mejor que pueda ser, asi que por lo pronto optaremos por la tercera opcion.

Este script lo que hace es que si el navegador es el IE aplique a los PNG automaticamente un filtro Alpha para las transparencias, como comento arriba, no hay mas que hacer mas que pegar esto, el script lo hace todo solo :-D

<!--[if gte IE 5.5000]>
<script language="JavaScript">
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 or higher.
{
for(var i=0; i<document.images.length; i++)
{
var img = document.images[i]
var imgName = img.src.toUpperCase()
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : ""
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
var imgStyle = "display:inline-block;" + img.style.cssText
if (img.align == "left") imgStyle = "float:left;" + imgStyle
if (img.align == "right") imgStyle = "float:right;" + imgStyle
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\');\"></span>"
img.outerHTML = strNewHTML
i = i-1
}
}
}
window.attachEvent("onload", correctPNG);
</script>
<![endif]-->



Otra de las opciones de uso de un PNG es para fondos, esto se puede solucionar con lo siguiente entre las etiquetas head:

<style type="text/css">
<!--
#fondo {
background-image:url(logoGDE.png)
}
* html #fondo {background-image:none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='logoGDE.png', sizingMethod='crop')
background:;
}

-->
</style>


* html Esto hace que se ponga un fondo para unos navegadores y ese mismo con un filtro al IE

Hay que cambiar
logoGDE.png por la imagen de fondo que vamos a usar

En la tabla se pone id="fondo" yo lo puse en una tabla, si se pone en la etiqueta <table> y la tabla tiene bordes sobrepondra la imagen a los bordes, si se pone en el <td> no.

Probado en: Firefox 1.5 Opera 8.54 IE 6

De esto se puede ver un ejemplo en www.cristovivo.com/prueba.html que a lo mejor no es la mas estetica pero muestra lo anterior

Espero les sirva ademas de que tambien espero sus comentarios al respecto, esta es una de las grandes preguntas que siempre rondan en los foros.

Ver post completo...

Agregar contador gratuito en webs

He creado un simple contador de visitas para agregar a cualquier pagina web de manera facil y configurable, dicho contador podra ir evolucionando en mejoras, esta es la version 1 asi que puede que mas adelante saque mas versiones con mas funciones y caracteristicas ademas de diseños, un ejemplo del contador es como el mostrado en mi blog, del lado derecho apenas arriba del logo del blog.

Para agregar este contador a cualquier sitio solo hay que agregar una pequeña linea de javascript y configurar algunas cosas, es facil y rapido, aqui una descripcion:

Script a agregar:
<script src="http://www.creandowebs.com/contador.asp?user=paginaweb.com&
tv=Visitante&fn=Arial,Verdana&sz=11&bd=yes&c=000099"></script>

(Nota todo va en una sola linea, se corta por espacio)

donde configuraremos lo que esta marcado en negritas.
user=paginaweb.com por la pagina donde estara el contador, es importante cambiar esto para poder tener un contador unico para cada sitio.

tv=Visitante es el texto que aparecera justo antes de la cantidad de visitas, ejemplo:
Visitante 0202

fn=Arial,Verdana es la(s) fuente(s) a utilizar.
algunas opciones: pueden ser tahoma, Trebuchet MS o cualquiera que uses en tu sitio

sz=11 es el tamaño de la fuente en pixeles, el tamaño 11 equivale a mas o menos al tamaño 2
Opciones: numero valido para el tamaño deseado de fuente

bd=yes si es yes el texto aparecera en negritas, si no quieres esto cambialo por no
Opciones: yes (fuente en negritas) no (fuente normal)

c=000099 es el color del texto en valor hexadecimal
Algunas colores:
Blanco=ffffff
Negro=000000
Azul=0000ff
Rojo=ff0000
Verde=00ff00

Esto es todo, el script debe pegarse en la parte donde queramos que aparezca el contador, les informo que el contador esta programado para contar visitas usando sesiones, esto lo que ocaciona es que sean visitas reales, es decir, si alguien se hagarra haciendo clicks o recargando la pagina solo se generara una visita (si el usuario tiene activas las cookies por que las sessiones usan esto).

Ver post completo...