Welcome to WebmasterWorld Guest from

Forum Moderators: open

Message Too Old, No Replies

What variables that can be captured from a visitor?

There is a whole world of SDC opportunities for better websites

11:15 am on Nov 28, 2001 (gmt 0)

Senior Member from GB 

WebmasterWorld Senior Member 10+ Year Member

joined:Feb 21, 2001
votes: 0

In consideration of SDC (see: [webmasterworld.com...] )
I am just beginning to reolise there is a whole world of SDC opportunities for better web sites. The language example given by Air is a great idea.

1.) What are the variables that can be captured from a visitor before they access the site? I have heard of these:

- IP
- Language of browser / computer
- Type of browser
- Referer
- Screen Resolution
- Platform (Mac / PC)
- OS

I do not know much about this subject so I may be approaching it wrongly (feel free to put me right).

2.) How are they used in Java-Script (Client side) and PHP (Server side)?
e.g. in Java-Script I have seen these used.
- document.referrer
- screen.width
- navigator.appName
- screen.colorDepth / screen.pixelDepth


2:02 am on Nov 29, 2001 (gmt 0)

Senior Member

WebmasterWorld Senior Member 10+ Year Member

joined:Feb 10, 2000
votes: 0

Javascript can retrieve a lot more information about a client than a server side script can, since javascript is actually executed by the client it has access to more information than the CGI specification provides for server side scripts about the client.

However, javascript cannot be entirely relied upon to collect this information, a surprising number of people surf with it disabled, only enabling it when they visit certain chosen sites. The other drawback to javascript is that you cannot make server side decisions with it, or write information to the server about each visit.

A quick search for cgi php environment variables or javascript environment variables at google returns sites that list all the variables available. Lot's of variables but not all useful.

Even with the limited information collected using CGI, some possible uses for discussion sake could be:

a)as you already mentioned, to selectively deliver content based on the language used by the client, serving the page requested in the language reported by the browser, with a default language in case there is no page in the language the browser reports, or no language setting is returned by the user's browser.

b)Use special features only supported by certain browser versions or brands. By comparing the browser version the visitor is using, a page with heavy DHTML can be served knowing that it can be viewed correctly by that user. Likewise for certain CSS functions which only certain browsers support.

c)Using the IP address as a means of identifying certain users. For example, addresses starting with 24.*.*.* are coming from a broadband (@home cable) connection, so pages you wouldn't dream of serving to people on dial up become acceptable, if they are not from a broadband IP range then they see the low KB page.

It is also possible to identify AOL users in the same way (by IP address or the AOL designation in the browser's ID) and serve pages specifically targetted to that audience.

If you wanted to go through the trouble of doing it, you could identify ISP's by geographic location based on their IP address ranges, and serve a geographically targetted version of the page being requested by a user from a certain geographic region.

d)Retrieve the keywords from a referrer and serve keyword specific versions of a page requested by a user based on their search engine query.

I'm sure members here can come up with other inventive ways to use javascript or server side scripting to selectively deliver content in a way that icreases your ability to target and deliver a clearer message to a particular user. IMO retrieving the variables is quite straight-forward, finding something useful to do with them isn't always.

Salesmaster II

3:20 am on Dec 12, 2001 (gmt 0)

Inactive Member
Account Expired


<<Retrieve the keywords from a referrer and serve keyword specific versions of a page requested by a user based on their search engine query.>>

This sounds to me what SEO is really about.

I can see why,Could you elaborate on how?


5:28 am on Dec 12, 2001 (gmt 0)

Senior Member

WebmasterWorld Senior Member 10+ Year Member

joined:Feb 10, 2000
votes: 0

The basic premise is to examine the $ENV{'HTTP_REFERER'} (in perl), $HTTP_REFERER (in PHP), or referrer = getenv("HTTP_REFERER") (guessing for c/c++) and determine if the referrer is present, if it is, then xtract the keywords used to find that page.

At this point a variation of cloaking is performed, where the page shown the human visitor is based on the keywords they used to find it, instead of the usual selective serving of pages based on IP address or user agent.

The page served based on the keywords can have subtle changes, such as prefill a search box with the keywords they used to find it, or maybe a sentence to indicate where additional information may be found if not present on that page.


More elaborate setups may serve a completely customized page based on the search terms used to arrive at your site. Most often I have seen this done at sites with online catalogues, where the page indexed and returned for many search phrases is not the page that actually contains the item that was searched for. This provides an opportunity to present a very targetted page to the user based on the search terms.

In a way it is the reverse of traditional cloaking, rather it is after the fact cloaking. Instead of serving optimized pages to search engines by IP address, instead, regular users are served optimized pages based on the search terms they used. Basically it is the ability to tighly focus the message presented to each visitor based on what they were looking for, it let's you put all of the search terms you rank for and decide after the fact what pages are served for each search term.

One other advantage of this method is that it allows you to take advantage of unintentional high rankings for search therms that would otherwise go unexploited.