... then you might want to read on.
For not very much money... the software is free, and you may already have the hardware you need.
In this essay, you can learn what "dynamic web pages" are. You can read an overview of the elements you would need to get in place in order to put your own dynamic web pages on the web, and give web users access to a database maintained by you on your server. Or maybe you'll do all of the above, but just for a local LAN.
That's imperfect... not everyone benefiting from this essay will do all of the above.
The whole thing is a spin off from my work explaining Open Office's excellent database, ooBase. While it will do many things extremely well, there are a few where you need to use it in conjunction with MySQL to achieve certain results. E.g. for a database which several users can access concurrently, be it on a LAN or over the internet you would set up a MySQL server (not too hard, and explained here), and access the data it serves with clients running ooBase. For a database with granular, not easily circumvented permission restrictions, you could use the same set-up. It also relates to my FarWatch system, an inexpensive way to monitor your home, office, weekend home, etc, from anywhere on the internet.
So much for the Good News. The Bad(?) News is this: I tried to set up my dream solution using a mere Windows 98 (SE) computer for the server. I very nearly did it.... I'm still not convinced it can't be done... but I didn't get everything working together. (I did have just about everything "working"!) I only gave up on Windows 98 when anti-virus products for it became hard to find. It shows you how long my WAMP installation has been working well for me!
STOP PRESS: Since writing the bulk of this, I have installed, twice (two locations... no "re-install" needed!), very easily, a full WAMP (Windows Apache/ MySQL/ PHP) environment in Windows XP boxes. I haven't used every feature... I challenge anyone to do that!... but both installs went without hassle, and have performed well for a long time. N.B.: There is more than one "WAMP" out there. The one I used, and am so impressed by, is WAMPServer, formerly known as WAMP5, from http://www.wampserver.com/. With one download, one install, you get all the different parts described in this essay installed with no fuss. But the essay is still useful to you, I hope: It tells you about what the parts are for.
As a "sidebar" within a similar page I wrote, another fully working solution is discussed. Well... it shows you all about putting a MySQL database managed by you online. The solution allows PHP driven pages, which lets your readers access the data, within whatever restrictions you choose to impose.
The page you are reading now has sections introducing you to setting up those PHP-driven pages. What that "solution" lacks, at least if you use 1and1.com to host your pages, is a way to connect ooBase clients to the data. Write and tell me if there's another host out there which would let users have MySQL databases AND allow ooBase clients to connect... all for less than $10 per month, please. I have no doubt someone, for a price, has the service I describe!
Although with the Win98 box I have (so far) failed to achieve the MySQL parts of my objectives, if I were doing this "in anger", I would find an XP or Ubuntu box to dedicate to the task instead of trying to graft it onto a Win98 machine with certain legacy applications running that must not be damaged. I have every confidence that if I were going down the "fresh, dedicated start" road, it would be plain sailing... if you'll forgive the mixed metaphor. (I have had an XP box "live" on the net with WAMP for many happy months, serving up my FarWatch display.)
Starting with a "naked" machine, I have done all of what follows with "just a few clicks" (relatively speaking), using the "do everything" setup packages for Windows and Linux (Ubuntu) mentioned previously and discussed further below.)
A lot of ground is covered below. Even if you are not setting out to do exactly what I did, reading through what I did will give you a through grounding in what is behind the scenes of those "do everything" installers. You will be guided through the elements of the solution, making you far better trained to make your system do what you want.
If you think you have enough background in matters of....
... and just want some help with the "how", you can skip over some introductory material.
In what follows "psServer" refers to the Win98 computer was acting as a server at the time the essay was first written. (My main server is now an CP box.) "pcClient" is an XP box on the same LAN.
Both connect to the internet through a modem/router/hub. pcServer has a fixed IP address on the LAN, and, I think I use the term correctly, "NAT" inside the modem/router/hub ensures that all traffic for port 80 from the outside world is handled by pcServer.
I was new to all of this when the essay was first written. Which means there may be mistakes of judgement in the following... but it also means I may mention some "gotcha" that an expert might not think to mention.
(The sub-heading is a bit of a stretch.. don't worry if you don't get it!)
A word about the word "server". You won't need a fancy computer to be your "server". And it doesn't need to be set aside to do nothing but be "the server". You CAN set aside a computer as "a server", but you don't need to. We're not going to here. pcServer will be "serving" other computers on the LAN, and eventually across the world via the internet, but it can still be used for a game of Freecell by anyone who happens to have access to the keyboard. As I write this, on pcClient, in that computer I have a text editor (Textpad) and a web browser (Firefox) running. One computer. Two programs. I can also have both programs running in pcServer, if I wish, in addition to the WAMP programs. Those additional programs are "servers". Each establishes a service. Because the service is present, other programs, client programs, have a place to go to get service. The client programs don't even have to be on a different computer. You can have both halves of the "client/server" magic running in the same PC... but it becomes much more fun... and more useful... when the "serving" and the "being a client" happen in two computers, and one computer is in one place, and the other is elsewhere. (When both the client program and the server program are in one computer, it is a bit pretentious, perhaps, to call things by those names... but there's no fundamental difference between the "all in one" and "spread across two" situations.)
System administrators dedicate a PC to "being a server", and buy specially configured hardware, optimized for server work, when they anticipate heavy traffic to the server software to be run in that PC. But you don't need to do that for simple stuff. (You'll be a "system administrator" if you give what is explained here a try!)
The programs that provide services are different from things like Textpad and Firefox in that they won't routinely interact directly with a human. They will be a bit like your anti-virus software.... running quietly in the background, "doing things", but not directly noticeable to the person using the PC they are running on. The server software "talks to" other programs, the "client" programs.
Here's another illustration of clients and servers. You use clients quite often, I would bet. The ATM machines the banks provide (so they don't have to pay humans to give us our money) are clients. They connect to big computers hidden in secure locations. These "big computers" are the ATM servers. Those servers are in charge, and can authorize the ATM, the client, to dispense cash when we supply the client with the right PIN, which the client passes to the server (for checking) along with our request for the cash.
It may seem like we are never going to start, but you need to be clear about something else first: Static and dynamic web pages.
First what they aren't.
I'm not talking about static and dynamic IP addresses. (The latter, which is what most home users have, is adequate, by the way, if you know enough to be worried. I've done a separate guide to why you need, how to set up, a dyndns service.)
If you access a static webpage... which you have, mostly, done when you accessed this one, then what you see will bear a tight relationship with the "stuff" stored on the server. On the server this comes from, there is a document you could put in a text editor, and in it you would find...
"... in it you would find..."
However, the page you are reading isn't quite a static web page. The text of the advertisements from Google is not stored with "in it you will find" (etc). When your browser asks my web page server for this page, my server sends most of what you see "directly"... but there is also some code in the web page which causes the server to go off to Google, fetch some text from there, and substitute that text for the code which called for it. That's the sort of thing that happens in dynamic web pages.
(Another obscure heading... sorry! Hope you "get it", and are amused. Again, don't worry if not... blame my fried neurons, not your failure to understand what we're discussing.)
The biggest "gotcha" is keeping straight what will happen where! For instance, it is no good having a page of .html in pcClient and expecting it to be rendered by the web server which resides in pcServer. The page of .html has to be on pcServer, even though it is of no "use" to that computer. The objective is for pcServer to send it to pcClient so that it can be displayed in window of the browser running on pcClient. For a static webpage you can get the page "served" from any PC on your LAN by nothing more complicated than the operating system's basic file handling capabilities. But to see the output of dynamic web pages, or to see pages over the internet, you need a server, and the pages have to reside on it.
Not only do you need to keep clear in your mind where the various documents (and data) you want to work with are stored, but you must also keep track of something else. Before we turn to that, let me re-iterate what I hope I just implied: even though some things will be presented on pcClient, when you ask for them, those things "start life" on the server. Right. Onward....
The other thing you need to stay clear about is the location... pcServer or pcClient?... of the software which is doing each particular part of the process. This will, I suspect, become clear to you after you've become lost a few times because you have forgotten to remember the advice just given. This "client/ server" thing can be strenuous exercise for the little gray cells.
At last.... I'm almost ready to tell you all about setting up a working WAMP system....
What is "WAMP"??? The name comes from....
... and, although it isn't part of the cute acronym, we're going to set up phpMyAdmin, too... which runs under PHP.
Windows you probably have, sadly. But our governments let it happen, and it will be a while before Linux takes over. You CAN, by the way, do everything I'm going to explain in this essay using a Linux computer for pcServer... you will even use the same software. It makes a pretty good way to "get into" Linux, if you have pretty solid computer skills and can afford the extra distractions of dealing with a new operating system. It really isn't too bad... really! Certainly if you are thinking of doing this with a Windows 98 box as pcServer you should ask yourself if you need those hassles when by taking on the hassles of learning Linux you could avoid sinking time into something with a limited future. A healthy second hand PC which was ditched merely because its XP got all messed up, or because the owner wanted Vista (there are foolish people out there) would be FINE. Put a Ubuntu installer disc into the beast, elect server setup (i.e. "Set this computer up to be a server") and I would be very surprised if it didn't emerge (in less time that it will take you to read this essay) filled with LAMP... Linux/ Apache/ MySQL/ PHP. (And phpMyAdmin). (It did when I tried it... but I have to admit that the resulting system hasn't had many tests.)
All of the rest of the parts of "WAMP" are free and have been around for a while. They have vigorous support communities. All work on Windows and Linux.
Apache is software to make a computer answer web browsers.
MySQL is a database.
PHP is a language used, amount other things, to create dynamic web pages.
phpMyAdmin is software to make it easy for you to "do things" to a MuSQL database... create tables, insert data, etc.
At last we are really going to get to the heart of this. I'll go through the WAMP set up process twice. In the first pass, I'll sketch things. In the second, I will try to tell you about some of the ways you could go wrong, try to fill in some of the details for you.
The first pass shows what you need to accomplish, and gives some tests you can make. The tests should help you see what the steps accomplish. Not everyone will want to go beyond installing Apache.
Putting the Apache server software in pcServer, and arranging for it to come up, start running each time pcServer is booted will mean that both static and dynamic webpages, stored on pcServer, will be available to computers on the LAN, and, with just a little extra work (and risk), computers anywhere on the internet. (And, if I fire up a web browser on pcServer, then pcServer can be both client (Firefox) and server (Apache). The whole "client/server" thing can play out on one processor.) I've installed Apache 2.2 on an Ubuntu Hardy Heron box, on a Windows ME box and on a Windows 98 (SE) box. The one on the Windows boxes have been working quite well for several years. Yes, they suffer the occasional crash... but they don't have uninterruptible power supplies, for a start. One of them, through the magic of advanced power control, restarts itself when the power comes back. The other just needs someone to press it's "On" button.
Using Apache on a Win98 box is fraught by three complications. It is hard to get good anti-virus software for windows 98. Windows 98 is inherently less secure that later operating systems. And Windows 98 can't "run services"... but it CAN run a server.
The trick to "running the server" on a Windows 98 box is to understand that it can't run the way it would in a later OS. You will need to use a shortcut to httpd.exe. It will probably have some command line parameters. On my installation, done a few years before June 2009, the shortcut's name is "Start Apache In Console". I keep a copy of the shortcut in my Start Up folder.
This might be the place to mention to you:
All of these programs use "config" files... "config" being short for "configuration".
They are text files, and they say how the program should operate. You could, for instance, have a line in Apache's config file to say that it should only accept requests for services from the PC that it is running it. (That would be a strange rule to impose, but you could do it.)
To work with config files, you just open them in a text editor, make your change, and then save the file. If the application the config file configures was running while you did this, don't expect the application to start running differently as soon as you save the changes to the config file. Often these programs only look at the config files as the applications are starting up. In some cases, you can take steps to tell the application to re-consult the config file.... but to be safe, I usually just shut the application down and restart it.
To test that you've successfully installed Apache...
Put a page of static html in the http documents folder on pcServer.
It can be as simple as....
<html> <body> <p>Hello Universe</p> </body> </html>
Call it "MyPage.hjtm", or something more sensible, but I'll refer to it as "MyPage" in what follows. (You may find that an "index.htm" or an "index.html" was put there for you as part of the install. And you will probably find that if you just enter "127.0.0.1" into a browser running on pcSerfve, then that page comes up. But we will leave the issues of index.htm vs index.html, and the issue of what your site's default page for another time).
Fire up a browser on pcServer. Enter 127.0.0.1/MyPage.htm in your browser's address bar. You should see the page you would expect to.
Still on pcServer, still in your browser, try "localhost/MyPage.htm". Should see page.
Start an MS-DOS window, by your usual method. "Start|Run|Command" will do it. Enter ipconfig, and make a note of the IP address that starts 192.168...
Go to pcClient, a different machine, on the same LAN. Fire up a browser, enter "http://", plus the IP address, plus /MyPage.htm, e.g. something like
But remember that in your case, the number will be different. (You can leave out the "http://" part, I only put it in to guide and reassure people about where to put this string of text.
When you press enter, your page should... again!... appear.
PHP isn't good for much on it's own, and if you aren't going to do dynamic web pages, or MySQL, then you don't need to read any further.
Still reading? Good.... Onward...
PHP works alongside your web server. That server doesn't have to be Apache, but it is an Apache-PHP installation that is the subject of this essay.
PHP is certainly needed by phpMyAdmin, which is worth having if you want to install MySQL. (Even "basic" MySQL may need it, too... I'm not sure.) I've installed PHP5.2.9-2 on a Win98(SE) box, and PHP5.2.4-2ubuntu5.6 on an Ubuntu Hardy Heron box. It Can Be Done. The Win98 install was... interesting... but I got there. I will try to write up the details one day.
Not only do you need to install PHP, but you also need to tell your web server (Apache) about it.
None of the clients connecting to your web server, or to your MySQL databases need PHP. (Or Apache, if you wondered). They don't need much, in fact, beyond a browser and a LAN or internet connection.
When you have PHP installed, and Apache configured to use it, then to test your setup, create the following in a text editor. Save it in the folder that Apache serves its .htm pages from. Call it Test.php. (Be careful that your text editor doesn't tack a ".txt" on the end of that.)
Be very careful about spaces and such.
Once that is on pcServer, in the right place, then go to pcClient (or try this in a browser on pcServer, but what's happening will be more clear to you if the client work is done in one machine while the other does the server part.)
Open a web browser. Type Test.php where you would usually type something like http://www.bbc.co.uk. Press enter. The browser window should fill with a colorful report about the PHP installed in pcServer. It will have a nice heading with the PHP version information. It will have a table full of such things as the System, the Build Date, the server API, etc. (No... you don't have to know what any of those are.)
Now create a second small text file. Call it TestPHP.htm. Save it where you saved Test.php. use your browser to fetch that. You should see something very similar, with an extra header, the one saying "We Did This For Us!!"
<html> <body> <h3>We Did This For Us!</h3> <br> <? phpinfo(); ?> </body> </html>
In a way, I feel sorry for you... I can't tell you what enormous please it gave me when that WORKED on my machine. I didn't have this essay to guide me. Still... even with this essay, I bet you'll have enough little adventures along the way that you'll be please when the page works.
I must give credit to several sources of information: It was columns in the British edition of Computer Shopper and some of the services and FAQ pages at 1and1.com which "inspired" me to take on setting up my LAMP and WAMP systems. And all of the software concerned is well supported by enthusiastic user groups. The documentation and discussion produced by them was another major source of help. One criterion which weighs heavily in any thinking I do about exploring a new topic is "Is it well established? Have at least some of the 'wheels' been invented? Does it have a lively support community?"
Don't, for one thing, set up any databases! That's for later!
Remember the issues we had with Apache on a Win98 machine? Particularly the fact that Win98 can't "run services"? Well, in a post Win98 world, MySQL also runs as a service, and everyone is delighted. But, like Apache, a MySQL server can run in Win98... it is just a little more tedious.
Now... I told you at the start that I am quite new to all of this. Well I'm REALLY new to MySQL (and phpMyAdmin). If you too are very new, you might want to take a break from this and look at one or both of two things. Even without logging in, registering, etc, etc, you can play with a working MySQL + phpMyAdmin. The nice people at phpMyAdmin have provided this "play with it, see how it works" demo. All you need is your web browser and internet connection. Also, I have written another essay, which focus on using the things I discuss setting up here. About a third of the way into that, under the heading "Crawling" (you can search on the phrase "crawl before you walk", if you like), you will find a discussion about using other servers which already has a working MySQL and phpMyAdmin on it.
I installed MySQL 4.1 on a Win98 (SE) box. (I have MySQL 5.1 on my Windows XP box, and 5.x (I think) on my Linux box.) I'm not sure I would do it again... but I did it. (Eventually, I bought a second-hand Windows XP box ($200)to install a current (June 09) MySQL. I'd already had good experiences with MySQL on Ubuntu. I'm confident it works well in other Linuxes, too.) That's not to say you shouldn't have the "fun" I had... but it is to say you should consider if you really want to go down the MySQL in Win98 route.
Most of what follows would still apply if you did have a Linux box, or a WinXP box to use for pcServer. In some cases, the version numbers would be different. Some messy details would "go away", because your box would be able to "run a service".
I suspect my system isn't quite set up right yet, but the following WORKS: I ignore the "MySQL 4.1 Command Line Client" shortcut that somehow appeared in my Start menu along the way to where I am. If that or the other one "work", then I don't understand what they are supposed to do!
I start a MS-DOS window the usual way (or with Start|Run|Command, if you prefer that.) I enter....
cd C:\ cd "program files" cd mysql cd "mysql server 4.1" cd bin
... and then I type "mysqld-nt". I'm asked for the password which I set on the whole of the MySQL system, and when I've given it, the window winks into oblivion. Only by doing ctrl-alt-del can I see that mysqld-nt is now a running process. (I then take care to cancel out of the "Close Program" window before I mess something up!) ((Ah! P.S.: If you do "mysqld-nt --console", the window stays open, making it easy to see that the server software is running. You won't be able to type new commands into the window, and you won't get messages about everything processed by MySQL. You open a new MS-DOS window if you want to issue other commands. If you shut down the server (see below), you DO get a message in the window where you typed "mysqld-nt --console". End P.S.))
Yes... you enter "mysqld-nt" to run the software which will provide the MySQL server in your Win98 box. That "nt" suffix is a bit of a worry... it is there because you are running the version optimized for Windows NT, which, as they say, you haven't got. But it is still the right version to run on your Windows 98 box.
Actually, I've altered the PATH system variable so that I don't have to do all that "CD"ing... but if you don't want to edit your Autoexec.bat file for this, you can do what I described. You could also make a batch file to do it.
If you are in an MS-DOS window either in the "bin" directory, or with a suitable PATH, then you can enter...
The computer will ask for your MySQL password, as before, and then you should get a little table.....
+--------------+ | Databases | +--------------+ | mysql | | test | +--------------+
... at least I think you'll get both. You should get the mysql database. That, by the way is a database (tables, etc) about the way you've set things up...users and permissions, mainly. It won't have many entries yet.Whatever you do, don't touch "mysql"! It is a little confusing that they have an entity full of data called "mysql" inside the care of a computer program called "mysql". Sigh.
The other database shown in the table above, "test", may have been generated by my struggles while I floundered around in the dark trying to get started; it may not be present in your list.
When you get a bit farther along, you may from time to time want to shut the MySQL server down. You can use ctrl-alt-del... but you shouldn't. You should go to the bin folder and issue the following comment....
mysqladmin shutdown -p
(You don't need to shut the MySQL program down every time you switch off the computer, or do a full restart.)
Wow! That's all there is (so far) to MySQL. Pretty disappointing!
We'll come back to use it in a moment.
Just in passing... not that it is very useful, except for testing, if you want, you can open another MS-DOS window, and in that open a client into the MySQL server which is running in the machine.
In that new MS-DOS window, type mysql -p. You will be asked for your password. You enter that and you're in! You can tell you're in because the command prompt will change to "mysql". Enter "help" for a list of what you can do. If you get yourself into a situation where you are getting "->" on each new line, try entering a semi-colon, and pressing enter. "status" will yield a slew of interesting (to someone, I suppose) information... which will tell you that your MySQL server is working. Type "quit" to shut down the client.
phpMyAdmin, as you will know if you tried the set-up-by-others installations I mentioned to you above, is a friendly, GUI, interface for Doing Things with databases held within MySQL.
As, we think, we already have our MySQL database application installed, we are nearly to where we were going, even if we did install the cart before hitching up the horse.
Forgive me... as I was writing this, I drifted into some "how to setup" stuff. I'll move it eventually! In a few paragraphs I get back to the outline of what you do, how you test you've done it.
I've not seen anyone explicitly recommend what I am about to recommend, so it may all be a Very Bad Idea. But I didn't want a Bunch Of Stuff in the folder you might infer they were telling you to put it in. The install instructions for phpMyAdmin tell you to put what comes out of the phpMyAdmin zip archive in the folder where Apache looks when you ask it to serve something. When I unzipped my version 3.x (3.2.0, as it happens.. right for the Win98 environment, etc.) phpMyAdmin (be sure you don't do it crudely, don't dump everything in one folder.. WinZip can unzip it properly, respecting the "put it here" info held in the zip archive)... when I unzipped the archive, the result was a folder (aka directory) with a long, tedious name. Inside that were 4 sub-folders and, alongside them, about 90 files.
I created a folder called pma (PhpMyAdmin) in the folder where Apache looks when asked to serve something. I put the four folders + 90 files THERE.
CRITCAL STEP... don't forget. Also in pma, by hand, create a folder called "config".
Now go to pcClient, and into the browser enter something like....
... replacing the "z"s with whatever the IP address is of pcServer. (Even the 192.168 may be different on your machine, but that's not likely.
It takes an alarming time (15 seconds?) to come up, but before long, you should see a page with "Setup" for a heading, and the skeleton of a configuration file, something like....
<?php /* * Generated configuration file * Generated by: phpMyAdmin 3.2.0 setup script by Piotr Przybylski * Date: Tue, 16 Jun 2009 18:19:43 +0100 */ $cfg['DefaultLang'] = 'en-utf-8'; $cfg['ServerDefault'] = 1; $cfg['UploadDir'] = ''; $cfg['SaveDir'] = ''; ?>
Click "Overview", and you enter a PHP powered webpage which lets you create the right phpMyAdmin configuration file for your circumstances. You need to set up a new server, but do as little as you can... the system will take care of many things.
There are many buttons saying "Save" while you are working with config.php. Most will add lines to the Config file you are building. The Config.php program is a bit like a clever wordprocessor that assembles a document for you.
However, the "Save" button at the bottom of the overview page is different. That one saves the config file you have built, as "config.inc.php".
You can, by the way, re-open and re-work config files... just be sure, after editing a config file, to restart anything that needs it.
Re-capping the phpMyAdmin story so far:
We put some files on pcServer, just by extracting them from a zip archive. We haven't used some wretched "installer" which has done who knows what.
We created a config file for phpMyAccess.
Once the file has been saved, it must be moved from the config/ directory and made read-only... as a security measure. That's what the official docs say. I assume they want it moved to the folder above, "pma" in my case. I hope it won't compromise my system's security, but I've only copied the file to the folder above, keeping the original for easy re-editing.
There are some security recommendations at the bottom of http://wiki.phpmyadmin.net/pma/Quick_Install which I commend to your study.
At last! Be sure your MySQL server is running (in pcServer), and then invoke phpMyAdmin. For phpMyAdmin, if pcServer is at 192.168.0.250, and you are using phpMyAdmin 3.2, you enter the following in a browser on pcClient....
This is where, on my Win98 based solution, things went horribly wrong. I couldn't get into the database on pcServer from pcCLient. I tried LOTS of things... fear not. I have no doubt that if you were using an XP or Ubuntu computer for pcServer, things would go beautifully.
You should get a login screen, headed with a cheerful "Welcome to phpMyAdmin"... a message which I believe you can change. (What a target for hackers! If you can get into my system, please do so, change the message, and send me an email to tell me how to reach you to discuss the gaps in my defenses. My server is at http://mon7nc.dyndns.org/)
Strange that... I don't recall where we told phpMyAdmin where, inside pcServer, MySQL is. Probably the reason we don't need to is that we have the MySQL server software running. I'm also not sure where Apache was told that stuff for MySQL goes where it goes. That may be down to the fact that stuff for MySQL is passed over a special port, usually 3306. As long as it Just Works, I can live with those mysteries!
If you are having problems at this stage, any firewalls would be prime suspects. MySQL's special port would be a good thing to look for.
This ends rather abruptly. I hope what is above was useful. I hope someday to come back and re-work this with a different server so that I can go all the way to the solution I was hoping for... a MySQL database on a web-accessible server, with dynamic web pages accessing it, and ooBase clients also allowed to connect.
N.B.: The search engine just looks through the web site for the words you enter. It cannot answer "Which program is fastest?"
Why is there a hidden graphic, and scripts on this page? I have my web-traffic monitored for me by eXTReMe tracker, among other things. They offer a free tracker. If you want to try it, check out their site
Click here to return to main page for Helpful Hints.
Page tested for compliance with INDUSTRY (not MS-only) standards, using the free, publicly accessible validator at validator.w3.org
Click here to go to the site's main index... Helpful Hints is just one corner of the site. You can search the site from the main index.
Free is good! But! Be careful. Not all "free services" are good things. Be sure you learn a bit about spyware before you get too adventurous roaming the internet. Neither my webpages nor my programs incorporate spyware.
- - - - P a g e E n d s - - - -