Website acct creation & login script needed

I have a new javascript enabled interactive website.  Its contents work equally well (in fact, faster) when run locally, and would be marketable to others in my profession (Physical Therapy) on floppy disc.  I'd like to set up a CGI script for website users account creation and login, using the 'captured' client ID (much like the Experts Exchange algorhythm).  The only difference is each client account would have an expiration date, making it a 'shareware' website, if you follow me.  At the end of 60 days (or whatever), the site would become inaccessible to folks using the particular workstation, (hopefully) spurring them to buy my program.  I need to know:
1) Is this theoretically possible using a CGI BIN??
2) Does each stand alone client have an individual internet ID??
3) Does each workstation within an intranet have an individual ID??
4) If 'yes' to questions 1-3, can you recommend a handbook or other resources to help me get started (I have NO perl etc. experience).
Thanks very much.  Experts Exchange is TOPS!!!!!
Williston, VT
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Here's some answers for you:

1) It's very possible to do what you're suggesting.  Some ways are easier to explain, so I'll use the basics.  One easy way is to use a login CGI to have users enter their name and password.  If it matches one of the ID's and passwords that is in a list of approved ID's (which you have another program clean every day for people whose account has "expired") then the REMOTE_ADDR is written to a separate file which gives them a "ticket" for a certain length of time.  A user's REMOTE_ADDR can be an IP number or a domain name, but it won't change as long as a user stays at the same machine with a constant connection.  Then, as the user navigates inside your site their REMOTE_ADDR is checked against the ticket list to make sure that they can get the requested page and that enough time hasn't expired so that they have to login again.  It sounds like a lot of work, but unless you plan on having tens of thousands of users, it can be done very quickly.

2) Each computer will have its own ID, the REMOTE_ADDR on the Web server will be passed this ID every time an HTTP request is made.  So this ID will remain constant as long as a connection is constant or they have a static name/IP.  Most people using a dial-up ISP will have dynamic naming, and will rarely have the same name/IP address twice.  So by using a login method you can have dynamic name/IP users have the same access as static name/IP users.  You also won't have to worry about people using a registered user's machine and, just because they're sitting at a computer that is registered, they have access to your site.

3) Each user will definitely have their own ID, but whether or not it stays the same depends on their connections.  Some intranets will set static name/IP addresses, some will use dynamic names.  It all depends on the system.

4) Since you're talking about creating a system to make your site "shareware," I'm imagining that you'll probably have ideas on how to improve this system later.  My advice is to go pick up "Learning Perl" (the Camel Book) from O'Reilly and go through the chapters, doing the exercises.  Once you've done that (might take you a week or two, depending on your rate) you can check out various Perl sites around the Web how to create CGI interfaces to your Perl programs.  Not only will you find Perl to be an incredibly powerful aid in creating your programs, but you'll find a large number of Perl-Web programmers around willing to help you in your projects.  And you'll find a ton of resources on the Web to help you along.

Good luck, and have fun.  :)

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Scripting Languages

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.