<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP, Web and IT stuff &#187; Web Development</title>
	<atom:link href="http://www.webdigi.co.uk/blog/tag/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webdigi.co.uk/blog</link>
	<description>Little words of wisdom</description>
	<lastBuildDate>Tue, 15 Feb 2011 14:22:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Rise of Javascript</title>
		<link>http://www.webdigi.co.uk/blog/2009/rise-of-javascript/</link>
		<comments>http://www.webdigi.co.uk/blog/2009/rise-of-javascript/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 16:00:54 +0000</pubDate>
		<dc:creator>iphp</dc:creator>
				<category><![CDATA[Javascript Development]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.webdigi.co.uk/blog/?p=440</guid>
		<description><![CDATA[Since its birth in 1994, Javascript has come a long way. Today it is one of the most popular programming languages on the web. Javascript has been on the rise and is growing faster since AJAX based applications reignited professional developer interest. It is now possible to it to write applications on the server, the [...]]]></description>
			<content:encoded><![CDATA[<p>Since its birth in 1994, Javascript has come a long way. Today it is one of the most popular programming languages on the web. Javascript has been on the rise and is growing faster since AJAX based applications reignited professional developer interest. It is now possible to it to write applications on the server, the mobile devices, on the browsers (add ons and plugins),  inside PDF documents, even in some remote controls and many more to come.</p>
<p><strong>Javascript application development in Mobile devices </strong></p>
<div id="attachment_470" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-470" title="palm_webos_450" src="http://www.webdigi.co.uk/blog/wp-content/uploads/2009/06/palm_webos_450-300x216.jpg" alt="Build Native Applications using Javascript" width="300" height="216" /><p class="wp-caption-text">Build Native Applications using Javascript</p></div>
<p>Palm&#8217;s new OS is the first mobile platform to be built from the ground up to combine standard technology, innovation and integration. At its core, webOS leverages several industry-standard technologies, including web technologies such as CSS, XHTML and JavaScript. You can think of webOS applications as native applications, but built from the same standard HTML, CSS and JavaScript that you&#8217;d use to develop web applications. Palm has extended the standard web development environment through a JavaScript framework that gives standardized UI widgets, and access to selected device hardware and services.</p>
<p>Javascript can be used on the <strong>iphone</strong> too.  The HTML 5 specification provides a new mechanism for client-side data storage: JavaScript database support. This feature shipped originally with iPhone OS 2.1. When you use “Add to Home Screen” from the “+” button on Safari for iPhone, a web application with a manifest defined (per the HTML5 spec) will be saved with any cached resources.  It is also worth noting that these features have not been added to Safari on Mac OS X or Windows.</p>
<p><strong>Desktop Application development using Javascript</strong></p>
<p>Adobe AIR is a cross-platform desktop runtime created by Adobe that allows web developers to use web technologies to build and deploy Rich Internet Applications (RIAs) and web applications to the desktop. This means what you can write you application using Javascript and then let AIR to figure out how to run your code in Windows, Linux, Mac and future operating systems.</p>
<div id="attachment_453" class="wp-caption alignleft" style="width: 360px"><img class="size-medium wp-image-453 " title="airtotal2" src="http://www.webdigi.co.uk/blog/wp-content/uploads/2009/06/airtotal2-300x200.png" alt="airtotal2" width="350" height="233" /><p class="wp-caption-text">Desktop App using Javascript</p></div>
<p>The application shown in the pic is written using Javascript, HTML and CSS. It uses the ExtJS library. Javascript can be used to dock the application in the taskbar, delete and modify files on the hard drive, communicate to different server, use AJAX, etc. You can even use flash within your app to make the application look and feel much better. This gives the web developer good access to a desktop.</p>
<p><strong>Server side Scripts using Javascript</strong></p>
<p><strong> </strong></p>
<p><strong><span style="font-weight: normal;">Server side JavaScript has been around for a long time and potentially offers some unique and interesting advantages over other languages (like PHP, ASP, etc) because the same language is spoken by both client and server. There are<a rel="nofollow" href="http://en.wikipedia.org/wiki/Server-side_JavaScript"> numerous attempts</a> to bring server side javascript to the masses.  Server side Javascript has to do much more than what it has to do at the browser level with</span></strong> access to databases, files, and networking, as well as logging, process management, scalability, security, integration APIs, and extensibility. You can even use your own javascript libraries on the server jQuery, dojo, Ext JS, prototype, etc.</p>
<p><strong>Javascript in other places</strong></p>
<p>- Adobe reader (from v3.02) supports Javascript for forms and basic operations. SOAP support has also been included since version 7.0. There is also access to the entire 3D Javascript API. More details on using Javascript is <a rel="nofollow" href="http://www.adobe.com/devnet/acrobat/pdfs/js_developer_guide.pdf">available here</a><br />
- Open office application suite supports Javascript to <a rel="nofollow" href="http://framework.openoffice.org/scripting/release-0.2/javascript-devguide.html">write macros</a>. This move looks like a sensible addon given the usage of VBScript in MS Office suite.<br />
- Apple&#8217;s Dashboard Widgets, Microsoft&#8217;s Gadgets, Yahoo! Widgets, Google Desktop Gadgets are implemented using JavaScript.<br />
- The oddest one in this list will have to be the  <a rel="nofollow" href="http://www.amazon.com/Philips-TSU9400-Pronto-Universal-Control/dp/B000VV9ZJU">Philips Remote Control</a> which uses Javascript</p>
<p><strong>ECMAScript 4 (ECMAScript Harmony)</strong></p>
<p>Javascript has been relatively stable since the third edition of ECMAScript published in 1999. Features under discussion for a future edition originally ECMAScript 4 now ECMAScript Harmony include Classes, a module system, static typing and Optional type annotations, Generators, Iterators, Destructuring assignment, algebraic data types. Well if you think this is ambitious you should see the original ECMAScript 4 which had more semantic and syntactic innovation. Packages, namespaces and early binding from ECMAScript 4 are no longer included for planned releases with ECMAScript Harmony. The intent of these features is partly to better support &#8220;programming in the large&#8221;, and to let programmers sacrifice some of the script&#8217;s ability to be dynamic for performance.</p>
<p>So yes as a web developer who uses Javascript on a daily basis, I am excited to watch Javascript grow and be available in more places.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webdigi.co.uk/blog/2009/rise-of-javascript/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Avoid Javascript blocking content download on your website during page load</title>
		<link>http://www.webdigi.co.uk/blog/2009/avoid-javascript-blocking-content-download-on-your-website-during-page-load/</link>
		<comments>http://www.webdigi.co.uk/blog/2009/avoid-javascript-blocking-content-download-on-your-website-during-page-load/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 14:03:00 +0000</pubDate>
		<dc:creator>php-manual</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Javascript Development]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.webdigi.co.uk/blog/?p=219</guid>
		<description><![CDATA[Around 80% of the end-user response time is spent on the front-end. A fair share of this time is spent on downloading components of the page like scripts, Flash, stylesheets, images etc.  Javascript takes majority of the loading time of a webpage because scripts block parallel downloading and rendering in the page. Even if you do not have [...]]]></description>
			<content:encoded><![CDATA[<p>Around 80% of the end-user response time is spent on the front-end. A fair share of this time is spent on downloading components of the page like scripts, Flash, stylesheets, images etc.  Javascript takes majority of the loading time of a webpage because scripts block parallel downloading and rendering in the page. Even if you do not have a lot of Javascript files to load on your webpage they can still block loading other content on your page while they load.  Lets have a look at how the standard javascript file include method and the script DOM element method in detail below.</p>
<p><strong><span style="text-decoration: underline;">Standard Javascript file include method</span></strong></p>
<pre class="brush: jscript; title: ; notranslate">
&lt;SCRIPT src=&quot;A.JS&quot; language=&quot;JavaScript/text&quot;&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT src=&quot;B.JS&quot; language=&quot;JavaScript/text&quot;&gt;&lt;/SCRIPT&gt; 

&lt;IMG src=&quot;1.GIF&quot; /&gt;
&lt;IMG src=&quot;2.GIF&quot; /&gt;
&lt;IMG src=&quot;3.GIF&quot; /&gt;
</pre>
<div id="attachment_230" class="wp-caption aligncenter" style="width: 468px"><a rel="attachment wp-att-230" href="http://www.webdigi.co.uk/blog/2009/avoid-javascript-blocking-content-download-on-your-website-during-page-load/document-loading-webpage/"><img class="size-full wp-image-230" title="Javascript blocks the other elements from loading" src="http://www.webdigi.co.uk/blog/wp-content/uploads/2009/03/document-loading-webpage.png" alt="Javascript blocks the other elements from loading" width="458" height="208" /></a><p class="wp-caption-text">Javascript blocks the other elements from loading (Example)</p></div>
<p><span style="text-decoration: underline;"><strong>Script DOM element method</strong></span></p>
<pre class="brush: jscript; title: ; notranslate">

var p = g.getElementsByTagName(&quot;HEAD&quot;)[0];
var c = g.createElement(&quot;script&quot;);
c.type= &quot;text/javascript&quot;;
c.onreadystatechange = n;
c.onerror = c.onload = k;
c.src = e;
p.appendChild(C);
</pre>
<div id="attachment_231" class="wp-caption aligncenter" style="width: 468px"><a rel="attachment wp-att-231" href="http://www.webdigi.co.uk/blog/2009/avoid-javascript-blocking-content-download-on-your-website-during-page-load/document-loading-webpage-without-blocking/"><img class="size-full wp-image-231" title="document-loading-webpage-without-blocking" src="http://www.webdigi.co.uk/blog/wp-content/uploads/2009/03/document-loading-webpage-without-blocking.png" alt="Javascript executed without blocking any element from loading" width="458" height="208" /></a><p class="wp-caption-text">Javascript executed without blocking any element from loading</p></div>
<p>This method creates a DOM element for each Script and then adds the element to the HTML. </p>
<p><strong>NOTE</strong>: </p>
<p>1) Only when the <strong>appendChild </strong>function is called the Javascript will be executed.<br />
2) For inlined code that depends on the Javascript and also for a similar method of <a rel="nofollow" href="http://www.stevesouders.com/blog/" target="_blank">Asynchronous Script Loading &#8211; See Steve Souders blog</a><br />
3) If you go to MSN.com (Alexa top 10 site based on traffic) and hit view source you can see the javacript elements are included by using the script dom element to load the web pages faster. This is a good example of where you can use the script dom element method for certain js files that do not have inlined code dependency. Let us run a <a rel="nofollow" href="http://www.webpagetest.org/" target="_blank">Pagetest waterfall report</a> and you can see the following for MSN.COM</p>
<div id="attachment_282" class="wp-caption aligncenter" style="width: 583px"><img class="size-full wp-image-282" title="no-blocking-msn" src="http://www.webdigi.co.uk/blog/wp-content/uploads/2009/03/no-blocking-msn.png" alt="Javascript loading in MSN does not block" width="573" height="209" /><p class="wp-caption-text">Pagetest Waterfall report of MSN.COM shows no blocking during page load</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.webdigi.co.uk/blog/2009/avoid-javascript-blocking-content-download-on-your-website-during-page-load/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>How to detect if your webserver is hacked and get alerted</title>
		<link>http://www.webdigi.co.uk/blog/2009/how-to-detect-if-your-webserver-is-hacked-and-get-alerted/</link>
		<comments>http://www.webdigi.co.uk/blog/2009/how-to-detect-if-your-webserver-is-hacked-and-get-alerted/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 15:36:53 +0000</pubDate>
		<dc:creator>php-manual</dc:creator>
				<category><![CDATA[PHP Development]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://www.webdigi.co.uk/blog/?p=31</guid>
		<description><![CDATA[We all do our best to write excellent code and also keep our installations of popular open source tools like WordPress, Joomla, Oscommerce, Drupal, phpmyadmin and all its plugins always updated to prevent any attack or hackers using known exploits on them. This article is not aimed at going through all those methods to help you secure [...]]]></description>
			<content:encoded><![CDATA[<p>We all do our best to write excellent code and also keep our installations of popular open source tools like WordPress, Joomla, Oscommerce, Drupal, phpmyadmin and all its plugins always updated to prevent any attack or hackers using known exploits on them. This article is not aimed at going through all those methods to help you secure your website BUT focuses on how to send you an alert once your website is hacked and running &#8220;hidden&#8221; code that you didnt write.</p>
<p><span id="more-31"></span></p>
<p><span style="text-decoration: underline;">The problem</span></p>
<p>Once hackers get into your website either by exploiting known vulnerabilities in any of the installed programs OR by getting FTP access to your server, the first thing they usually do is to plant backdoor scripts to log them in again at a later date. They need some executable script on the server to gain access to MySQL passwords, installation passwords or even edit settings in your wordpress or other installations.  We have also seen situations where the site was left largely unchanged except for malicious javascript code added to the bottom of the index.php or index.html files.</p>
<p>So in short the bad guys have taken over your server and running anything from a backdoor script or launching phishing attacks or sending tons of spam emails. You will not know that your server is hacked until you get blacklisted on spamhaus or your customers get redirected to some random site or worser still when you are contacted by ebay/paypal/some bank saying that your website is phisihing their customers. <strong>The problem is that we dont even have an idea that our site is hacked until it is too late or too embrassing.</strong></p>
<p><span style="text-decoration: underline;">Simple Solution &#8211; Website Change Detection System</span></p>
<p>We need a script on the server that detects any changes or to any executable file on the server or any new file on the server from HTML, JS, to PHP, ASP, Perl, Python files etc.  If we generate a <strong>hash </strong>value of all our files and then compare them periodically, then we will be able to detect when our codebase has changed on the server.</p>
<p>These are the steps that our change detection system performs (It takes about 500ms to execute on a typical server):</p>
<ol>
<li>Load configuration file (contains password, exclude list)</li>
<li>Check password from request before starting (recommended)</li>
<li>Recursively run through every file and sub folder on the server within the current directory of the script.</li>
<li>Generate a hash for each file and arrive at the master hash.</li>
<li>Compare master hash with hash the user has and alert if different!</li>
</ol>
<p>Notes:</p>
<ul>
<li>This script at this simple level is almost 100% fool proof in detecting changes to the codebaes give that the hacker or bots don&#8217;t know of websiteCDS presence.</li>
<li>At this stage the script cannot detect SQL injection attacks and changes to code that are saved to the database.</li>
<li>The users hash is not stored on the server at any time, the comparison with master hash can be done at cron script level or using siteup as discussed below.</li>
</ul>
<p>We have the following code written in PHP but you can do the same with any other scripting language to perform similar checks. We have started the project under google code and is available here: <a title="websiteCDS version in PHP" href="http://websitecds.googlecode.com/files/websitecds%20version1.zip" target="_blank">PHP code for WebsiteCDS</a><br />
See the readme file in the download for help with setup.</p>
<p><span style="text-decoration: underline;">Different ways to automate the alert system</span></p>
<p>Method 1: Using our trusted cron job<br />
A cron job can be setup to run the website CDS, compare the results with the last known valid hash and send out an email alert.</p>
<p>Method 2: With Siteup<br />
Siteup is a free tool for windows systems that can be set to periodically check if your website is reachable. This is recommended for those of us who don&#8217;t want to setup a cron job. It can be downloaded here <a rel="nofollow" href="http://www.xequte.com/other/index.html#siteup"  target="_blank">http://www.xequte.com/other/index.html#siteup</a> We can use this to frequently call our change detection system and then use the siteup word search to check if the hash value is the same as what we have from our last codebase update. ( <a title="websiteCDS setup in SiteUP" href="http://blogcdn.webdigi.co.uk.s3.amazonaws.com/blog/wp-content/uploads/2009/screenshot/SiteUPeditSite.jpg" target="_blank">See screenshot</a> )</p>
<p>NOTE: The project &amp; code included is the first version of the change detection system and kindly submit your ideas and comments here or an issue or feature request in <a title="WebsiteCDS issue tracking" href="http://code.google.com/p/websitecds/issues/list" target="_blank">google code project for websitecds</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webdigi.co.uk/blog/2009/how-to-detect-if-your-webserver-is-hacked-and-get-alerted/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>How to check if an email address exists without sending an email?</title>
		<link>http://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-an-email/</link>
		<comments>http://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-an-email/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 14:24:04 +0000</pubDate>
		<dc:creator>php-manual</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[PHP Development]]></category>

		<guid isPermaLink="false">http://www.webdigi.co.uk/blog/?p=19</guid>
		<description><![CDATA[We have all been doing email address validation for a very long time to make sure that the email is correctly formatted. This is to avoid users entering wrongly formatted email address but still they can accidentally give us a wrong email address. Example of a correctly formatted email address but still wrong: mailbox.does.not.exist@reddit.com [VALID [...]]]></description>
			<content:encoded><![CDATA[<p>We have all been doing email address validation for a very long time to make sure that the email is correctly formatted. This is to avoid users entering wrongly formatted email address but still they can accidentally give us a wrong email address.</p>
<p style="text-align: left;">Example of a correctly formatted email address but still wrong:</p>
<p style="text-align: center;"><strong>mailbox.does.not.exist@reddit.com</strong> [VALID email format but it does not exist]</p>
<p style="text-align: left;">Above case specifically happens when you take important customer email on phone and you type in the wrong email. So is there a QUICK solution to really check the email without sending a test message to the user? Yes.<br />
<span id="more-19"></span></p>
<p><span style="text-decoration: underline;">The solution</span></p>
<p style="text-align: left;">A quick &amp; simple check below can be implemented in most programming language including PHP, Python etc. It relies on using the same SMTP which is used to send emails.</p>
<p>To check if user entered email <strong>mailbox.does.not.exist</strong><strong>@reddit.com</strong> really exists go through the following in command prompt.</p>
<p><strong>First </strong>- Find mail exchanger of reddit.com</p>
<p style="padding-left: 30px;">COMMAND:<br />
nslookup &#8211; q=mx reddit.com<br />
RESPONSE:<br />
reddit.com      MX preference = 10, mail exchanger = mail.reddit.com<br />
mail.reddit.com internet address = 208.96.53.70</p>
<p style="text-align: left;"><strong>Second </strong>- Connect to mail server mail.reddit.com</p>
<p style="text-align: left; padding-left: 30px;">COMMAND:<br />
telnet mail.reddit.com 25<br />
RESPONSE:<br />
220 mail.reddit.com ESMTP Postfix NO UCE NO UEMA  C=US L=CA Unsolicated electronic mail advertisements strictly prohibited, subject to fine under CA law CBPC 17538.45.  This electronic mail service provider&#8217;s equipment is located in the State of California.  See http://www.reddit.com/static/inbound-email-policy.html for more information.</p>
<p style="text-align: left; padding-left: 30px;">COMMAND:<br />
helo hi<br />
RESPONSE:<br />
250 mail.reddit.com</p>
<p style="padding-left: 30px;">COMMAND:<br />
mail from: &lt;youremail@gmail.com&gt;<br />
RESPONSE:<br />
250 2.1.0 Ok</p>
<p style="padding-left: 30px;">COMMAND:<br />
rcpt to: &lt;mailbox.does.not.exist@reddit.com&gt;<br />
RESPONSE:<br />
<strong>550 </strong>5.1.1 &lt;mailbox.does.not.exist@reddit.com&gt;: Recipient address rejected: User unknown in local recipient table</p>
<p style="padding-left: 30px;">COMMAND:<br />
quit<br />
RESPONSE:<br />
221 2.0.0 Bye</p>
<p>NOTES:</p>
<p>1) the <strong>550 </strong>response indicates that the email address is not valid and you have caught a valid but wrong email address. This code can be on the server and called on AJAX when user tabs out of the email field.  The entire check will take less than 2 seconds to run and you can make sure that the email is correct.<br />
2) If email was present the server will respond with a 250 instead of 550<br />
3) There are certain servers with a CATCH ALL email and this means all email address are accepted as valid on their servers (RARE but some servers do have this setting).<br />
4) Please do not use this method to continuously to check for availability of <span>gmail</span> / yahoo / <span>msn</span> accounts etc as this may cause your IP to be added to a blacklist.<br />
5) This is to supplement the standard email address javascript validation.</p>
<p><span style="text-decoration: underline;">Telnet screenshot in windows &#8211; Check email using SMTP commands</span></p>

<a href='http://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-an-email/checkemailtelnet/' title='Telnet on windows to check mail server using SMTP commands'><img width="150" height="150" src="http://www.webdigi.co.uk/blog/wp-content/uploads/2009/01/checkemailtelnet-150x150.png" class="attachment-thumbnail" alt="Telnet on windows to check mail server using SMTP commands" title="Telnet on windows to check mail server using SMTP commands" /></a>

<p><strong><span style="text-decoration: underline;">UPDATE: PHP code added on 26th January 08</span></strong></p>
<p>1) <a rel="attachment wp-att-79" href="http://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-an-email/smtpvalidateclassphp/">SMTP check code in PHP &#8211; DOWNLOAD</a></p>
<p>2) <a href="http://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-an-email/checkemailexamplephp/">Usage example - DOWNLOAD</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-an-email/feed/</wfw:commentRss>
		<slash:comments>103</slash:comments>
		</item>
		<item>
		<title>Does your website really need a CAPTCHA?</title>
		<link>http://www.webdigi.co.uk/blog/2009/does-your-website-really-need-a-captcha/</link>
		<comments>http://www.webdigi.co.uk/blog/2009/does-your-website-really-need-a-captcha/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 16:27:55 +0000</pubDate>
		<dc:creator>php-manual</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[forms]]></category>

		<guid isPermaLink="false">http://www.webdigi.co.uk/blog/?p=9</guid>
		<description><![CDATA[What is CAPTCHA? CAPTCHA is an acronym for &#8220;completely automated public Turing test to tell computers and humans apart.&#8221; This can be with images / audio or whatever we will see in future. Why do sites use it? CAPTCHA is used to prevent bots from automatically submitting forms with SPAM or other unwanted content. Google [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: underline;">What is CAPTCHA?</span></p>
<p>CAPTCHA is an acronym for &#8220;completely automated public Turing test to tell computers and humans apart.&#8221; This can be with images / audio or whatever we will see in future.</p>
<p><span style="text-decoration: underline;">Why do sites use it?</span></p>
<p>CAPTCHA is used to prevent bots from automatically submitting forms with SPAM or other unwanted content. Google and other companies use it to prevent bots from creating multiple Gmail accounts.</p>
<p><span style="text-decoration: underline;">What is wrong with it?</span></p>
<p>Users will have to enter this additional information every time they have to submit a form. This is getting more and more difficult to decode for humans as the bots are getting better at it. I am sure that everyone reading this post has atleast once got a CAPTCHA entered wrongly.</p>
<p><span style="text-decoration: underline;">Alternative Simple soultion</span>:</p>
<p>NOTE: Does not apply for highly targeted sites like gmail, yahoo mail and others alike.</p>
<p>However,<br />
If you have a sales form which requires an entry of username, email and phone number for a call back<br />
OR<br />
a simple contact us form with just name, number, description.</p>
<p>1) <span style="text-decoration: underline;">Have server validation of data.</span><br />
All the forms have only client validation in javascript. Just validate in server and you can have 70% of spam bot submissions caught.<br />
EG: If your form has Name, Email, Telephone.<br />
The bot will send some 500 character text in Name and valid email and some random data in phone field. A simple validation on the server to trash Name having more than 30 characters will do the trick.</p>
<p>2) <span style="text-decoration: underline;">Hidden input element</span><br />
Add an extra text input element to your form. In an external style sheet you set the element to display: none; thus making it invisible to all users with CSS enabled. Spam bots will usually fill all fields in a form you know that any forms submitted where this invisible field is not empty are spam.</p>
<p>With the above two simple steps you can see that most sites can avoid spam messages and still not having to use a captcha.</p>
<p>So in short &#8211; for all the websites with simple contact forms why do we use CAPTCHA and risk giving the customer an additional field to fill and risk not to getting them to fill it at all ??</p>
<p style="text-align: center;"><img class="size-full wp-image-14 aligncenter" title="Startrek data CAPTCHA" src="http://www.webdigi.co.uk/blog/wp-content/uploads/2009/01/datastartrek.jpg" alt="Startrek data CAPTCHA" width="480" height="343" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webdigi.co.uk/blog/2009/does-your-website-really-need-a-captcha/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

