First I initialized some variables. This code was added to global.asa's Application_OnStart function - IIS calls this function automatically when the server starts up...
function Application_OnStart ( )
{
Application.Lock ( );
// remember todays date
var d = new Date;
Application ( 'Today' ) = d.getDate ( );
// initialize new stuff in utils/Init.asp
Application ( 'BrandNewDay' ) = 1;
// a list of IP addresses that have clicked an ad
Application ( 'ClickFromIP' ) = '';
Application.Unlock ( );
}
...then I reset the BrandNewDay when the date rolled over (incidentally, I can also reset it manually by calling the BrandNewDay.asp page, which is sometimes handy. I'll leave you to look at that page):
function Session_OnStart ( )
{
Application.Lock ( );
// is it a new day?
var d = new Date;
if ( Application ( 'Today' ) != d.getDate ( ) )
Application ( 'BrandNewDay' ) = 1;
Application.Unlock ( );
}
Now I know when the day changed I modified utils/Init.asp
so that a new BrandNewDay
( ) function gets called when this Application variable is set. I also cleared
the Application ( 'ClickFromIP' ) variable that I'll use in a minute:
// ============================================
// anything that needs doing once per day!
// ============================================
function BrandNewDay ( )
{
if ( Application ( 'BrandNewDay' ) == 1 )
{
Application.Lock ( );
// clear the list if IP addresses that are ignored
Application ( 'ClickFromIP' ) = '';
Application ( 'BrandNewDay' ) = 0;
Application.Unlock ( );
}
}
Comments