ASP: Generar número GUID (Globally Unique Identifier)

Junio 6th, 2007 by kenavik

GUID = Globally Unique Identifier

Es “número” unico de 128-bit que se utiliza para identificar diferentes cosas… por ejemplo, las sesiones de los usuarios.

El numero es creado a partir de una convinacion de varios valores unicos (direccion IP, dia y hora, etc).

Para generar un GUID en ASP usaremos la siguiente función.

Function GetGuid()
Set TypeLib = CreateObject(”Scriptlet.TypeLib”)
GetGuid = Left(CStr(TypeLib.Guid), 38)
Set TypeLib = Nothing
End Function

Posted in ASP | No Comments »

WOS: Tu servidor Web de bolsillo

Mayo 8th, 2007 by kenavik

Vía Fresqui nos encontramos esta interesante utilidad con la que podremos tener un servidor Web Apache con base de datos MySql en un dispositivo de almacenamiento sin necesidad de instalar nada en ninguna máquina. Últimamente estamos viendo muchas aplicaciones de este tipo que poco a poco nos van facilitando el trabajo a los programadores Web.

Las características a nivel de servidor:

  • Apache
  • PHP 4
  • PHP 5
  • Mysql 5
  • Imagemagick (imprescindible para Typo3)

Y también viene con las siguiente lista de aplicaciones instaladas

  • PHPMyAdmin (Version 2.10.0.2)
  • TYPO3 (Version 4.1)
  • Drupal (Version 5.1)
  • Wordpress (Version 2.1.2)
  • OS_Commerce (Version 2.2)
  • Moodle (Version 1.7.1)
  • Joomla (Version 1.0.12)
  • Mambo (Version 4.6)
  • MediaWiki (Version 1.9.3)

Más info de WOS

Posted in ASP | No Comments »

ASP:Averiguar la edad de una persona

Mayo 8th, 2007 by kenavik

Os paso una función en ASP para poder obtener la edad de una persona a partir de la fecha de nacimiento. Hoy en el trabajo hemos querido hacerlo con un datediff y hemos tenido problemas con un extraño redondeo que hace la función datediif en ASP y al final hemos tenido que usar esta función que nos da la edad exacta.

function AveriguarEdad(fecha)

DateOfBirth=year(fecha) & "/" & Month(fecha) & "/" & Day(fecha)
If month(DateOfBirth)>month(date) then
aux=-1
Else
If month(DateOfBirth)=month(date) and day(DateOfBirth)>day(date) then
aux=-1
Else
aux=0
End if
End if

AveriguarEdad= Datediff("yyyy",DateOfBirth,date)+aux

end function

Posted in ASP | No Comments »

ASP:Enviar XML a un CGI con XMLHTTP

Marzo 29th, 2007 by kenavik

Os dejo un ejemplo de como enviar un XML por el método POST a un CGI de un servidor remoto usando el objeto XMLHTTP de ASP.
En este ejemplo enví­amos un XML con los datos de login para que nos devuelva otro XML como respuesta. En este ejemplo el CGI necesita recibir una variable llamada XML con el contenido del XML que hemos generado.

En este ejemplo supongamos que tenemos que mandarle al CGI los datos de acceso de algún servicio y que luego el CGI nos devolvera un XML como respuesta con información de nuestra cuenta.

Primero montamos el XML.

xml = ""
xml = "<?xml version=""1.0"" encoding=""iso-8859-1""?>"
xml =  xml & "<test>"
xml =  xml & "<user>xxxx</user> "
xml =  xml & "<password>xxxxx</password> "
xml =  xml & "</test>"

Una vez montado el XML declaramos el objeto XMLHTTP y sus propiedades.

Response.ContentType = "text/html"
Set objHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP")

Aquí­ deberemos poner la url del CGI remoto que vamos a usar.

url = "http://url+xxxx.cgi"
body = "xml=" & xml
username = ""
password = ""

Abrimos el socket envíandole la URL donde esta el CGI remoto.

objHTTP.open "POST", url, False, username, password
objHTTP.setRequestHeader "Content-Type","application/x-www-form-urlencoded"

Hacemos un send del XML que queremos enviar. Es importante tener en cuenta que cuando enví­amos un XML por POST usando el objeto XMLHTTP la variable body debe contener lo siguiente :

nombre_variable_que_necesita_el_CGI_para_el__POST = XML Generado

Esto debemos hacerlo así­ ya que cuando el CGI hace el request de la variables XML vía POST ( en esta caso el CGI le llama XML puede ser que otro CGI use otro nombre), si no encuentra la variable XML el CGI no se procesara correctamente.

objHTTP.send body
auxXML = objhttp.responseText
set objHTTP = nothing

Este ejemplo lo he usado en el trabajo esta semana para poder enviar SMS desde una web y gestionar los SMS de respuesta y quería postearlo en el blog por si alguién se encuentra en la misma situación.

UPDATE 31/03/2007

Navegando por internet he encontrado la web de Alex Hopmann que segun parece es el padre de la función XMLHTTP y explica la historia de la misma.

Posted in ASP, XMLHTTP | 4 Comments »

ASP: ‘Banear’ visitantes molestos

Febrero 13th, 2007 by kenavik

Hay una solución basada en puro código ASP para “banear” (to ban, echar fuera) algún visitante molesto al más puro estilo IRC de vuestras páginas.

Si conocéis su IP (que se puede sacar de los logs del servidor), podéis poner el siguiente código:


'La IP es sólo un ejemplo!!!
if Request.ServerVariables("REMOTE_ADDR")="210.220.24.1.2" then
Response.Buffer=True
Response.Status=("401 Unauthorized")
Response.End
end if

Que comprobará su IP con la que no queremos, y le expulsará si es igual. El problema es que ahora es que casi todo el mundo tiene IP dinámica.

Posted in ASP | 1 Comment »

ASP: recorrer valores que nos devuelve Request.form/querystring

Diciembre 12th, 2006 by kenavik

Normalmente cuando hacemos un submit en un formulario con ASP obtenemos los valores usando el metodo POST con un Request.form(”nombredelcampo”). En el caso de hacerlo por get usamos Request.querystring(”nombre del campo”) pero existen otras alternativas de realizar el request de un formulario.

Si queremos que cuando hagamos un submit de un formulario la página a la que asignamos el ACTION nos muestre todos los valores de POST que nos manda el formulario sin tener que escribirlos todos manualmente podemos escribir la siguiente línea.

Response.write Request.Form

Al hacer un response.write Request.form nos visualizara toda la variables y sus correspondientes valores por pantalla.Muy útil para formularios complejos y así poder debugar mejor nuestro código ASP en los casos que el volumen de datos sea muy elevado.
Igual que lo hacemos para los valores de POST podemos hacerlo para los valores GET simplemente escribiendo lo siguiente

Response.write Request.querystring

Realmente estas simples líneas nos pueden sacar de algún que otro problema y nos ayudará a controlar mejor que se esta enviando desde el formulario.

El siguiente truco me lo ha pasado mi amigo/compañero www.carlitrosweb.com. El truco consiste en recorrer con un for each todos los elementos que nos devolvía antes el request.form e ir visualizando por pantalla todos los valores.Podemos visualizar,tratarlos,guardarlos.. miles de cosas..

A simple vista direis pues vaya chorrada pero realmente es un algo muy útil ya que de esta manera podemos recorrer todos los elementos del formulario sin necesidad de saber el nombre de los elementos del formulario con el que trabajamos ni la cantidad de elementos que contiene el form.

For Each elemento in Request.form
Response.Write elemento & ": " & Request.form(elemento) & "<br>"
Next

Posted in ASP | 1 Comment »

ASP: Averiguar cuantos días laborables hay entre dos fechas

Noviembre 23rd, 2006 by kenavik

Os dejo una interesante función en ASP que tuve que hacer hace tiempo para averiguar los días laborables entre dos fechas.
Como ejemplo he cogido como fecha de inicio la fecha actual y como fecha final 7 días más respecto a la fecha actual.

'recibe dos fechas y nos dice cuantos
'días laborables hay entre esas dos fechas
Function diaslaborables(inicio,fin)
'busco la diferencia de días que hay entre las dos fechas
diferencia = DateDiff("d", inicio, fin)
numLaborables = 0
fechaindice = inicio
'compruebo que la fecha de inicio es menor que la fecha fin
If inicio for i= 0 To diferencia
'si devuelve un num entre 2 y 6 inclusive entonces es un día laborable.
If Weekday(fechaindice)>=2 And Weekday(fechaindice)<=6 Then numLaborables=numLaborables+1
'pasamos al siguiente día
fechaIndice = DateAdd("d",fechaIndice,1)
next
End If

diaslaborables = numLaborables
End function

'inicializo la fecha de inicio al día de hoy
fechainicio = Date()

'le agrego 7 dias a la fecha de inicio
fechafin = DateAdd("d",fechainicio,7)
dias = diaslaborables(fechainicio,fechafin)
response.write "Desde el dí­a "& fechainicio & " hasta el día "&fechafin & " hay "&dias & " dias laborables"

Posted in ASP | 7 Comments »

Generar código ASP o PHP a partir de HTML

Noviembre 13th, 2006 by kenavik

Navegando me he encontrado esta utilidad que a veces nos puede ayudar a la hora de programar. Si queremos generar código ASP o PHP a partir de un simple HTML. Desde esta Web puedes seleccionar el lenguaje de programación que queremos usar (ASP o PHP) y hacemos un copy&paste del código HTML que queremos generar y la Web nos genera el código en el lenguaje que anteriormente hemos seleccionado.
Muy útil para construir aquellos emails que tenemos que enviar desde nuestra aplicación Web.

Pulsa aquí para más info

Posted in ASP, PHP | No Comments »

problemas ASP en localhost con el FIREFOX

Octubre 15th, 2006 by kenavik

Hoy he vuelto a topar con FIREFOX al ejecutar una web usando ASP-AJAX ya que me ha salido la dichosa pantalla de introducir usuario y password.Eso tiene fácil solución solo teneis que escribir en la barra de direcciones del Firefox -> about:config.
Saldra una lista con toda la configuración del navegador, buscamos el parametro

network.automatic-ntlm-auth.trusted-uris

Debes ponerle el valor “localhost”

De ese modo podran acceder sin problemas usando: http://localhost/nombre_directorio/su_pagina.asp

Si por el contrario esta solución ya no os dado resultado (cosa que me ha pasado hoy) no se pq no me dejaba hacer una llamada a AJAX desde ASP.

Deberéis hacer lo siguiente:

1. Entrar en el Administrador del IIS.
2. Seleccionar el directorio virtual de tu sitio. Botón derecho, luego seleccionar “Todas las tereas/Asistente para permisos…”,le dais a siguiente
3. En la 2ª ventana selecciono: “Seleccionar la nueva configuración de seguridad de una plantilla”, siguiente…
4. En la 3ª ventana, marcais “Public Web Site”, y le dais a siguiente…
5. Siguiente en todas las otras ventanas y listo.

Debeis tener el “Control de autenticación y acceso anónimo” (Propiedades/Seguridad de directorios/Modificar…) esto deberá estar habilitado y tener una cuenta especificada con usuario y password (Modificar…/Usuario anónimo).

Posted in ASP, Ajax, Firefox | No Comments »

Cuanto tarda mi página ASP o PHP en cargar…

Septiembre 8th, 2006 by kenavik

Función de ASP para averiguar cuanto tiempo tarda en cargar una página. Muy útil cuando cargamos muchos datos de una base de datos y buscamos la manera más optima de atacar a la base de datos..

'Comenzamos el crono
starttime = Timer()
'Toda la página a continuacion...
Do While tt < 30000
tt = tt + 1
Loop
'Lo que sigue va al final de la página.
'Nos fijamos cuanto tiempo lleva el crono y lo guardamos el tiempo final.
endtime = Timer()
'Mostramos los resultados obtenidos.
Response.Write "La carga se completo en " & endtime-starttime & " segundos = "
Response.Write " (" & (endtime-starttime)*1000 & " milliseconds)."

Versión PHP.

Incluir código al principio de la página.

$tiempo = microtime();
$tiempo = explode(" ",$tiempo);
$tiempo = $tiempo[1] + $tiempo[0];
$tiempoInicio = $tiempo;

Incluir código al final de la página.

$tiempo = microtime();
$tiempo = explode(" ",$tiempo);
$tiempo = $tiempo[1] + $tiempo[0];
$tiempoFin = $tiempo;
$tiempoReal = ($tiempoFin - $tiempoInicio);
echo “El tiempo de proceso de la página es “. $tiempoReal ;

Posted in ASP, PHP | No Comments »