CoverYourASP --> Newsletter archives

Free membership

Join in the fun! Sign in
Member Services

Site navigation
Download the entire site!
Search my articles
Free Magazines
Browse the directory

Send me feedback
Buy my boxer shorts

Recommend this page
Printer-friendly page

Resources I recommend
Link to my site
Advertising slashed!
About your privacy
Legal stuff
Site statistics
119 active users
4792 visitors today
3612 pages today
(only part of today)
Tools I use

Copyright © 1999-2016 James Shaw.
All rights reserved.

RSS submissions

Now open source with SourceForge!

Pick a newsletter to read - you can receive these every Saturday by subscribing.

You can also read the article that describes how this is implemented.

undefined NaN NaN

Jun 5 2002

Apr 30 2002

Mar 31 2002

Feb 28 2002

Jan 23 2002

Jan 22 2002

Jan 15 2002

Jan 14 2002

Jan 7 2002

Dec 24 2001

Dec 11 2001

Nov 27 2001

Nov 12 2001

Aug 1 2001

Jul 14 2001

Jun 24 2001

Jun 10 2001

May 26 2001

May 12 2001

Apr 30 2001

Apr 22 2001

Apr 14 2001

Apr 8 2001

Mar 29 2001

Mar 24 2001

Mar 17 2001

Mar 10 2001

Mar 3 2001

Feb 24 2001

Feb 17 2001

Feb 10 2001

Feb 3 2001

Jan 27 2001

Jan 20 2001

Jan 13 2001

Jan 6 2001

Dec 30 2000

Dec 23 2000

Dec 16 2000

Dec 9 2000

Dec 2 2000

Nov 29 2000

Nov 25 2000

Nov 18 2000

Nov 11 2000

Nov 4 2000

Oct 28 2000

Oct 21 2000

Oct 14 2000

Oct 9 2000

Oct 7 2000

Oct 3 2000

Oct 1 2000

Sep 29 2000

Sep 27 2000

Sep 25 2000

Sep 23 2000

Sep 21 2000

Sep 18 2000

Sep 14 2000

Sep 11 2000

Jan 20 2001


              C o v e r Y o u r A S P . c o m

             Welcome to the latest newsletter!


With over 70 files modified this week on the site, nobody
can say the site isn't dynamic! The site seems to be
"accelerating" if that's the right word.

Hopefully you're enjoying watching the site grow too - it
reminds me of the science experiment where you grow a

I never know which articles are going to be popular or
generate feedback. You almost have to be a psychiatrist to
build a web site.

So, lie down on the couch and I'll take you on a whirlwind
tour of the weeks events...


        A   W O R D   F R O M   M Y   S P O N S O R S

Get FREE sample code, online utilities, and articles at

Add intelligence to your ASP applications! Look up Whois
records, check email addresses, do DNS lookups, find network
problems with Ping and Traceroute, and more.


                    T H E   D I A R Y

               The events of the last week



13 Jan

- Started adding some links to external resources on the
Trouble shooting page. If I can't help you, someone here


14 Jan

- Added a few enhancements for my advertisers - Banners by
day now include totals, and a link to the page is now
available on Member Services for advertisers to click on.


15 Jan

- Code Updated: Improved Handle500100.asp - it now appends
the Referrer, IP address and User agent (browser) to the
email that it sends me.

- Code Updated: Fixed some HTTP 500.100 ASP errors that got
reported when readers were playing around seeing what they
could break! Calling BannerCounter.asp and CountLosses.asp
directly is a lot less likely to generate errors now!

- Code Updated: Missed a vital step when I was re-organizing
the BrandNewDay( ) function in utils/Init.asp recently. The
GetDaysBanners( ) function wasn't being called, so I fixed
that this morning.


16 Jan

- FYI - Mails sent to have been bouncing since
Saturday, so if you're missing your newsletter, or can't
subscribe or join as a member, now you know why. Many email
discussions lists are discussing the problem, but it's
definately's problem...

- Passed 500,000 page views today. Thanks for your continued
support - have you told all your friends? Got all your
co-workers to vote?


18 Jan

- Mike Robinson wrote in about a "Permission denied" when
sending email with CDONTS. I've now documented that problem
in a new "Email" section of the Trouble shooting page.

- Many people want Personal Web Server, but don't have the
Windows 98 CD. I've now updated the PWS article to include
links to download PWS from


19 Jan

- I moved the IncrementArticleCounter( ) function from
utils/footer.asp to utils/init.asp today. Many people are
clicking through to other pages before all the images have
loaded, so the article counts were lower than they should be.

- Fixed an error in CategoryPage.asp caused by my earlier
upload - I just love my HTTP 500 handler!

- While looking at some search engine referrals today I
noticed something a little disturbing! There were a few
CoverYourASP web sites out there - not just mine!

Downloaded copies have been put on the internet and found
and indexed by search engines!

So I've "enhanced" the legal statements to make it clear what
the intention of this web site is! Also, the downloaded
version has a banner highlighting the change..


           R E C O M M E N D   T H E   S I T E !

        Please recommend my site to your colleagues


Two new articles this week:

"Automatically reminding and deleting unconfirmed members"

Another example of using the BrandNewDay( ) function - this
time to search the database for unconfirmed members, and
email them or delete them...

"Generic function to walk through your sub-folders and files"

Developed to index my pages for a search function, this
article describes a function you can use for whatever you
want! Also discusses recursion and passing functions as

And another updated:

"Limiting clickthroughs to one per IP address per day"

One of the requirements from the banner ad system was to
protect the clients from spiders and malicious users...and
HTTP HEAD requests...and...


              H E R O   O F   T H E   W E E K !

Mark Briscoe gets the honor - he has been very helpful
recently and made some excellent suggestions for
improvements - some of which I've even implemented ;-)

Thanks Mark. Keep them coming!


               N E E D   A N   A S P   I S P ?

        Use mine. You won't find a nicer bunch of guys.

           Cheap, efficient and extremely helpful.


Charlie Darling asked a simple question earlier this week
that took quite a few emails to resolve. In the end Charlie
took the time to resolve it himself, then let me know.

The question was: "Have you managed to figure out how to run
PWS without having your internet connection active?"

My problem is that I have no access to a computer with a
modem - T1 at work and cable modem at home, so I couldn't
reproduce the problem.

To cut a long story short (and I'll update the trouble
shooting page to cover this later) here's the answer:

When IE starts up and asks you whether to "Work offline" or
"Try again", resist the urge to say "Work offline".

"Work offline" seems to limit IE to only show pages in the
cache. So any page that you haven't visited while online
will cause the dialog to reappear! A little annoying when
you're testing new pages on PWS.

However, "Try again" works. You'll get a 404 "File not found"
initially, but you can then access all your local files
with PWS.


         A   W O R D   F R O M   M Y   S P O N S O R S


Developersdex delivers the world's largest index for
Microsoft web technologies.  Search, post, and reply to over
13 of the most popular ASP, SQL, VB and XML Usenet newsgroups.

Devdex indexes over 5,000 new resources everyday including
those from MSDN, ASP.NET, 15seconds, 4guysfromrolla,
ASPToday, XML and just to name a few.

If it's on the NET it's on Devdex!



                     F E E D B A C K

            Have something to say? Please share!



Frank Fattizzi:

I was checking out how you are storing the footer views in a
database with relevant info. I noticed that this does not
track Netscape 6 views.


(well actually, I couldn't think of any reason why this would
fail, and Frank found the answer before I'd tried to
reproduce the problem)

Request.ServerVariables("HTTP_USER_AGENT") returns a string
82 characters in length for NN6, and the Agent field in the
Stats table was only 80 characters long. The insert statement
was failing and because it was called from a img tag I didn't
receive an error. Increased the size of the field to 85 and
all is well.


John Sorensen:

How can you change the values of an application variable, or
an application function? When I change the Application
Functions/Variables in the global.asa file, the changes don't
take effect until I reboot the server?


Obviously PWS is different (I didn't realize this), but the
IIS that your ISP uses doesn't work that way. Whenever
global.asa changes, i.e. you upload a new one, IIS sees this
and will automatically call the Application_OnStart

Now, I'm not sure how much of a "restart" actually happens,
but I do know that you can upload a new file, and it gets
used immediately (presumably at the start of the next
session). Not to be taken lightly though, since all your
Application variables get wiped out!


Lee Wilson:

Once the user has logged in I want a field in the members
table of the database to be set, so I can list the members
that are online. How?


Put the following line into ValidateLogin( ) in

oConnection.Execute('UPDATE Members SET FieldName=True
WHERE MemberID=' + nMemberID );

and set to False in Session_OnEnd ( ) in global.asa to
reset the field.


Mark Briscoe:

I was looking at your main page, where it pulls the most
viewed pages out of the database and places them in order.
I have noticed this before, that the date in the DB is
just a date value. Could you use the the file data stamp

Oh yer, i also thought that you could do a search page,
which would search all your articles, that would be cool.


It would be easy to do with the FileSystemObject, but I
decided against it. When I re-word a section, fix a typo
or just upload by mistake I don't want the article to be
flagged as "updated", and I doubt readers would either.
I rarely update the date, but if an article is added to,
or the content significantly updated I have that option.

As for the Search capabiliuty, I am writing it right now!


Mark Murphy:

I have two questions about your approach and would like to
hear your comments.

When you are using your SSI's on a new page in which the
Content() function will contain some particular formatting,
do you find it necessary to first design the page with a
wysiwyg editor like FrontPage and then to translate the
result into Out() statements?

When debugging output html it would be nice to have it
formated with some logically placed crlf's so that when
using View/Source, it's a bit easier to read.  Is there an
easy way to do that with JScript in the Out() function
perhaps? Do you think the performance change warrants just
having the crlf's in for debug only?


Good questions!

My pages are very simple - the same header, footer with just
different text in between. Some tables/forms I guess. Anyway,
no, I never use any tool. Just start typing. My HTML is so
simple, it doesn't warrant it. But isn't most HTML?

Maybe I don't ever design pages that are complicated, but if
I've never needed to, then maybe it's not necessary. I almost
put a "viewable in any browser" button on my site once until
I ran it in Notscape.

About the debugging part - it's really not just the cr/lf
that you'd need - it's the indenting, and that's the killer.
That's what bugs me so much - look at 90% of the web pages
out there, asp generated or not, and they all have huge
amounts of whitespace.

The customer asks for a quick site (or they should if they
don't), and what do they get? HTML comments - how ridiculous
is that in an asp page? Have you seen a frontpage generated
page that has db access? It's full of HTML comments containing
"webbots" to make its editing life easier. Screw the clients.

Phew. Sorry about that. ;-)

Anyway, it would be easy to add a

If ( IsDebug ( ) )

to Out ( ) and do something different. But I'll never agree
to it being changed for published pages!


            H A V E   I   H E L P E D   Y O U ?

          If I've helped you, help me help others!


I haven't mentioned the folks that publish links to my
articles around the web before, and without them you probably
wouldn't have found me.

So thanks are due to the following web sites, in alphabetical

Thanks Guys! Speak to you next week.

Warmest Regards,

James Shaw

[email protected]

885 Woodstock Road, Suite 430, #108
Roswell, GA 30075-2247, U.S.A.


   V O T E   F O R   Y O U R   F A V O R I T E   S I T E

         (or don't, if it's not

                S U B S C R I P T I O N S

          Do you want to subscribe or unsubscribe?


Featured sponsor
My favorite resources

Qualify for Free Trade Magazines

Free subscriptions to industry leading publications for those who qualify!

See my source code
wherever you see this icon...

You can also download the entire site source code for FREE!

I share my content

Supporting ASPRSS

Do you need a quick and easy way to link to my articles? All the information you need is published with ASPRSS...

CoverYourASP Mugs, T-shirts, caps - even Boxer shorts...
I don't make a penny from these, but they're a lot of fun! Don't you need a new mouse mat?

New Proposal Kit Professional 5.1
Brand yourself as a top professional: create quotes and amazing proposals and get many legal documents free!

The latter saved me 3 times the purchase price on the first day I owned it!