Jump to content

[SOLVED] Simple PHP script logging visitors but want to exclude bots


ashburnham

Recommended Posts

I have a really simple PHP script that is logging visits to a page on my website into a database with details of the IP address and referrer details.

 

One specific referrer is sending a large amount of page visits to us but they appear to be incorrect/irrelevant as (1) the number of visits is disproportionate to the times the form on the page is completed compare to other referrers and (2) I have a separate tracker provided by my website host that isn't logging the same high volumes of clicks as my simple PHP script.

 

My knowledge of PHP is fair but in terms of programs like website trackers/statistics I haven't got a clue but I assume the problem is because my basic script is logging bots as well as humans whereas the more sophisticated one provided by my host has the ability to exclude these.

 

Any idea how I can establish whether a page visit is a human user or bot before I log it into my database?

This will work

function isSpider($userAgent) {
	if(stristr($userAgent, "Googlebot")		|| 	/* Google */
	   stristr($userAgent, "Slurp")			|| 	/* Inktomi/Y! */
	   stristr($userAgent, "MSNBOT")    	|| 	/* MSN */
	   stristr($userAgent, "teoma")    		|| 	/* Teoma */
	   stristr($userAgent, "ia_archiver")   || 	/* Alexa */
	   stristr($userAgent, "Scooter")    	|| 	/* Altavista */
	   stristr($userAgent, "Mercator")    	|| 	/* Altavista */
	   stristr($userAgent, "FAST")    		|| 	/* AllTheWeb */
	   stristr($userAgent, "MantraAgent")   || 	/* LookSmart */
	   stristr($userAgent, "Lycos")    		|| 	/* Lycos */
	   stristr($userAgent, "ZyBorg")) {    		/* WISEnut */

	   	return true;
	}
	return false;
}



if(!isSpider(getenv("HTTP_USER_AGENT"))) {
   // user tracking logic goes in here
}

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.