<?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>Gavin Holt &#187; Articles</title> <atom:link href="http://www.gavin-holt.com/category/articles/feed/" rel="self" type="application/rss+xml" /><link>http://www.gavin-holt.com</link> <description>Glasgow Based Web Designer and Developer</description> <lastBuildDate>Sun, 11 Oct 2009 22:46:24 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0</generator> <item><title>Tutorial Series &#8211; Contact Form &#8211; Part 1</title><link>http://www.gavin-holt.com/articles/tutorial-series-contact-form-part-1/</link> <comments>http://www.gavin-holt.com/articles/tutorial-series-contact-form-part-1/#comments</comments> <pubDate>Tue, 17 Mar 2009 19:58:04 +0000</pubDate> <dc:creator>Gavin Holt</dc:creator> <category><![CDATA[Articles]]></category> <category><![CDATA[PHP]]></category><guid isPermaLink="false">http://www.gavin-holt.com/?p=93</guid> <description><![CDATA[When building a web application I find user feedback invaluable at all stages of the development process, both from a testing team to everyday users of the final product &#8211; all of those users will have their own unique opinions. Gathering and acting upon this feedback can help every designer / developer to improve their [...]]]></description> <content:encoded><![CDATA[<p>When building a web application I find user feedback invaluable at all stages of the development process, both from a testing team to everyday users of the final product &#8211; all of those users will have their own unique opinions. Gathering and acting upon this feedback can help every designer / developer to improve their applications as well as their own skill set.</p><p>Creating secure, functional forms that catch all errors whilst providing a positive user experience can be such a chore to build, but today I am going to show you how to quickly and easily build a spam-resistant contact form, using <a title="http://www.richardwillars.com/articles/php/php-form-processor/" href="http://www.richardwillars.com/articles/php/php-form-processor/" target="_blank">Richard Willars&#8217; Form Processor</a> and the <a title="http://recaptcha.net/plugins/php/" href="http://recaptcha.net/plugins/php/" target="_blank">reCAPTCHA php Library</a>.</p><p>The form I have coded offers:</p><ul><li>Full reCAPTCHA human verification</li><li>Verification of data format on all fields.</li><li>Timed spam killing, Stops bots from filling in the form quicker than a super human!</li></ul><p>It currently takes the following fields, but it is extremely easy to add new ones (read the rest of this tutorial for a guide on how to do it):</p><ul><li>Name  (Rules: Must be filled in)</li><li>Email (Rules: Must be filled in, email address must be valid, must be 5 characters or more and force the email address to be lowercase)</li><li>Subject (Rules: Must be filled in and greater than 5 characters)</li><li>Message (Rules: Must be filled in and greater than 10 characters)</li><li>Image Verification (The text entered by the user must match the text in the image)</li></ul><p>If you&#8217;re just here for a ready to roll contact form:</p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/contact/contact-1-1.zip" target="_blank">Download</a></p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/contact/" target="_blank">Demo</a></p><p>If you want to learn more about the form processor and how to code your own form, keep reading!</p><p>Richard&#8217;s simply fantastic class makes coding forms a joy! It allows a developer to write their entire form using xhtml, along with validation rules and error messages. This makes it extremely easy to pick up and use if you already know xhtml. When a user fills in a form the processor reads in all the xhtml form code, processes it and then rebuilds the form using valid xhtml. This means that the end user doesn&#8217;t see any proprietary code or see anything that might compromise the security of the system. This concept is difficult to explain so I&#8217;ll give you a small snippet before diving into the tutorial.</p><p>If I wanted an input box which a user must fill in with their email address, I would use the following code:</p><div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p93code2'); return false;">View Code</a> HTML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p932"><td class="code" id="p93code2"><pre class="html" style="font-family:monospace;">&lt;element id=&quot;email&quot;&gt; &lt;!--Create a new form element, Final name and id will come from id--&gt;
&lt;input type=&quot;text&quot; /&gt; &lt;!--Declare it as an input box, type text--&gt; 
&lt;strong class=&quot;error&quot;&gt; !&lt;/strong&gt; &lt;!--This is shown next to a field with an error, to show the user what fields require their attention--&gt; 
&lt;compulsory message=&quot;You Must fill this in&quot; /&gt; &lt;!--Our first rule, It must be filled in, the message attribute is shown to the user if they don't meet the requirements of the rule.--&gt; 
&lt;validate test=&quot;email&quot; message=&quot;Your email isn't valid&quot; /&gt; &lt;!--Once the user has entered something into the box, we need to make sure it meets the data requirements we want, so we want to make sure this is an email address.--&gt;
&lt;minlength length=&quot;5&quot; message=&quot;Your email must be at least 5 chanracters long&quot; /&gt; &lt;!--We want to make sure the email address is at least 5 characters long.--&gt;
&lt;text transform=&quot;lower&quot; /&gt; &lt;!--We want the email address to be brought down, so its all lower case. this rule changes AbCDEf to abcdef--&gt;
&lt;/element&gt; &lt;!--This ends the form element--&gt;</pre></td></tr></table></div><p>After this is processed, it outputs</p><p>&lt;input id=&quot;email&quot; name=&quot;email&quot; value=&quot;&quot; type=&quot;text&quot; /&gt;</p><p>As you can see the user has no idea of the rules imposed on the form!</p><p>If you want to see the full list of callbacks and how to use them, you can find them on <a href="http://www.richardwillars.com/articles/php/php-form-processor/" target="_blank">Richard&#8217;s site</a>, although, over the course of these tutorials I will be covering all of them.</p><h3>A Form Example</h3><p>Because it&#8217;s easier to have all the form markup in one block, I will be using <a href="http://uk3.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc" target="_blank">PHP&#8217;s Heredoc syntax</a>. We use this as it allows us to pass variables directly into the form without having to escape them.</p><p>I personally find it easier to have a php function that returns my form markup, though this is not necessary.</p><p>For this example I will start by showing you how to make a form input field with no rules, and then slowly turn it into a more complex and useful example of what can be done with the class.</p><p><strong>Example 1</strong></p><p>The first example is just a simple input field with no validation. This should give you a good idea of how to build a basic form.</p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/basic/1.php" target="_blank">Example 1 &#8211; One input field with no rules</a></p><p><strong>Example 2</strong></p><p>This second example is just a simple input field with one rule. The compulsory rule applied here ensures that you can only submit the form after typing something in the box.</p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/basic/2.php" target="_blank">Example 2 &#8211; One input field with a compulsory rule</a></p><p><strong>Example 3</strong></p><p>Building on the last example, the processor will now check that your name is filled in and that it only contains letters before allowing you to submit it.</p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/basic/3.php" target="_blank">Example 3 &#8211; One input field with a compulsory rule and validation check</a></p><p><strong>Example 4</strong></p><p>This example turns the world on its head and includes 3 inputs <code> <img src='http://www.gavin-holt.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </code>. In this example we keep the previous input fields and rules, but add more input fields for subject and email. We make sure that an email address and a subject are provided, and that the email address is in the correct format.</p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/basic/4.php" target="_blank">Example 4 &#8211; Multiple input fields with validation</a></p><p><strong>Example 5</strong></p><p>Here we introduce a different type of input field, the text area. We add this to the previous examples to allow our user to type us a message. The text area must be filled in and contain 10 or more characters.</p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/basic/5.php" target="_blank">Example 5 &#8211; Multiple text input fields and a text area field<br /> </a></p><p><strong>Example 6</strong></p><p>We&#8217;re going to add some anti-spam protection to protect the form against spam.</p><p>An easy and effective way of doing this is to use the <a href="http://recaptcha.net/plugins/php/" target="_blank">reCAPTCHA php library</a> and the callback feature of the form processor!</p><p>Here are the functions and code we will use to create the image</p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/basic/antispamfunction.txt" target="_blank">reCAPTCHA functions</a></p><p>Now we will create our input field (this is where the user will type the verification code), and link it to the image verification code using a callback</p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/basic/antispamelement.txt" target="_blank">reCAPTCHA Element markup</a></p><p>Here is the full form with source</p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/basic/6.php" target="_blank">Example 6 &#8211; Anit Spam protection</a></p><p><strong>Example 7</strong></p><p>Although image verification is usually quite effective, it can be broken by a persistent spammer (they can write scripts to analyse the images and read the text within them). Because of this we&#8217;re going to add an additional layer of security that is very simple but quite effective. We make sure that the user spends at least 15 seconds filling in the form before they can submit it.</p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/basic/7.php" target="_blank">Example 7 &#8211; Time Check</a></p><p><strong>Example 8</strong></p><p>Here we add the mailer part of the script. There&#8217;s no point in a contact form if it doesn&#8217;t let people contact you!</p><p>In this example we use the built in php mailer function, though it could easily be tweaked to use a 3rd party script such as PHPMailer. This example will send an email to whatever email address you enter into the email field.</p><p><a href="http://www.gavin-holt.com/tutorials/formprocessor/basic/8.php" target="_blank">Example 8 &#8211; Mailer Function</a></p><p><strong>Conclusion</strong></p><p>Richard&#8217;s class is vastly powerful, and these examples don&#8217;t even touch its full potential. Hopefully however, this tutorial has given you an insight into how to use the class and hopefully inspire some great ideas.</p><p>How do you use the class? Have you found this useful? Be sure to comment!</p> ]]></content:encoded> <wfw:commentRss>http://www.gavin-holt.com/articles/tutorial-series-contact-form-part-1/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Tutorial Series &#8211; PHP Forms Made Easy</title><link>http://www.gavin-holt.com/articles/tutorial-series-php-forms-made-easy/</link> <comments>http://www.gavin-holt.com/articles/tutorial-series-php-forms-made-easy/#comments</comments> <pubDate>Sat, 20 Dec 2008 22:54:53 +0000</pubDate> <dc:creator>Gavin Holt</dc:creator> <category><![CDATA[Articles]]></category> <category><![CDATA[PHP]]></category><guid isPermaLink="false">http://www.gavin-holt.com/?p=79</guid> <description><![CDATA[Forms are the bain of many web-developers, with the need for data validation, CSRF (Cross-site request forgery) protection, form manipulation and integration with web applications. They take a long time to code and can be extremely fiddly to get right! However, my good friend and fellow developer Richard Willars has came up with a fantastic [...]]]></description> <content:encoded><![CDATA[<p>Forms are the bain of many web-developers, with the need for data validation, CSRF (Cross-site request forgery) protection, form manipulation and integration with web applications. They take a long time to code and can be extremely fiddly to get right! However, my good friend and fellow developer <a href="http://www.richardwillars.com" target="_blank">Richard Willars</a> has came up with a fantastic solution!</p><p><a href="http://www.richardwillars.com/articles/php/php-form-processor/" target="_blank">Richard&#8217;s Form Processor Class</a></p><p>Richard&#8217;s form processor is one of the biggest aids I have ever came across in my time as a web developer. It allows you to quickly and easily build functional forms complete with validation and security checks, in a very easy to use markup language that can be understood by anyone with a bit of a brain!</p><p>This xml style markup language is run through the form processor, which extracts any validation / processing rules you specify, recreates the form in XHTML markup and sends it back to the browser complete with the appropriate error messages.</p><p>Having used this class since its release I would like to think I have quite an in-depth knowledge of its power and potential.</p><p>For this reason I will be providing a series of tutorials all using Richard&#8217;s fantastic form processor. Each one will be of a real life example, and I will break it down to show how the form processor makes it easier to use, as well as show how the markup works and most importantly how you can apply the theory to your own projects.</p><p>All scripts provided will be fully working production ready scripts which you are free to use. The form processor is aimed at all PHP developers regardless of skill level, and although novice users can learn a lot about PHP from these tutorials, the more advanced users can use them as a point of reference in integrating the form processor into their own applications.</p><p>The first of these tutorials will be a contact form, which will be going up on my blog shortly!</p> ]]></content:encoded> <wfw:commentRss>http://www.gavin-holt.com/articles/tutorial-series-php-forms-made-easy/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Validating dates with PHP</title><link>http://www.gavin-holt.com/articles/validating-dates-with-php/</link> <comments>http://www.gavin-holt.com/articles/validating-dates-with-php/#comments</comments> <pubDate>Wed, 15 Oct 2008 15:17:10 +0000</pubDate> <dc:creator>Gavin Holt</dc:creator> <category><![CDATA[Articles]]></category> <category><![CDATA[PHP]]></category><guid isPermaLink="false">http://gavin-holt.com/?p=63</guid> <description><![CDATA[Since I have got into building dynamic websites, I have often found myself building forms to gather dates and times of events, birthdays, booking requests. In fact, when building large applications, it is almost guaranteed you will need to take some form of date from a user. But, when building websites, we can never trust [...]]]></description> <content:encoded><![CDATA[<p>Since I have got into building dynamic websites, I have often found myself building forms to gather dates and times of events, birthdays, booking requests. In fact, when building large applications, it is almost guaranteed you will need to take some form of date from a user. But, when building websites, we can never trust our users input, it is essential to the integrity of the system that all data is correct. This means we must check all data coming in and reject anything which may cause problems.</p><p>Dates can be a very complex thing to validate, Days in a month and leap years both present problems.</p><p>PHP comes with a very clever built in function called <a href="http://uk.php.net/checkdate">checkdate</a>. Many developers have 3 separate inputs or drop downs to stop users from entering false dates. When I am filling in forms, I find this irritating and time consuming.</p><p>It doesn&#8217;t have to be harder to validate a date from a single text box.</p><div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p63code4'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p634"><td class="code" id="p63code4"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">function</span> realDate<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dateString</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// Define Function</span>
	<span style="color: #000088;">$parts</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/explode"><span style="color: #990000;">explode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$dateString</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//Split the date into its seperate part Day, Month and year and store them in an array</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// Check that the user supplied the date with all three bits of information, if it doesn't we return false straight away</span>
		<span style="color: #000088;">$day</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//As I am expecting my users to enter the date in a Day/Month.Year format, the day is the first in the array</span>
		<span style="color: #000088;">$month</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Month is second</span>
		<span style="color: #000088;">$year</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Year is last</span>
		<span style="color: #666666; font-style: italic;">/*
		 Use PHP's built in date check function, passing in our variables in the right order.
		 If it is right, the function will return true and in turn, our function will return true
		*/</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/checkdate"><span style="color: #990000;">checkdate</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$month</span><span style="color: #339933;">,</span><span style="color: #000088;">$day</span><span style="color: #339933;">,</span><span style="color: #000088;">$year</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// checkdate returns false, so do we</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><span style="color: #666666; font-style: italic;">// User didn't supply all three peices of information, Return False</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span> 
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #666666; font-style: italic;">//End Function</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div><p>Run a date in the format day/month/year (01/01/1970 for example) and it will return true if this is a real date and false if it isn&#8217;.</p><p>I have provided a fully commented source file and example to help you see this is action.</p><p><a href="http://www.gavin-holt.com/tutorials/realdate/index.php" target="_blank">Live Example</a></p><p><a href="http://www.gavin-holt.com/tutorials/realdate/realdate_source.txt">Source Code </a></p><p>Big thanks to <a href="http://www.richardwillars.com">Rich Willars</a> for his advice on cleaning the user input.</p><p>As always, if you see any way of improving the script, or a flaw in mine please comment.<br /></p> ]]></content:encoded> <wfw:commentRss>http://www.gavin-holt.com/articles/validating-dates-with-php/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Save your Vista Laptop battery</title><link>http://www.gavin-holt.com/articles/save-your-vista-laptop-battery/</link> <comments>http://www.gavin-holt.com/articles/save-your-vista-laptop-battery/#comments</comments> <pubDate>Sat, 13 Sep 2008 17:23:44 +0000</pubDate> <dc:creator>Gavin Holt</dc:creator> <category><![CDATA[Articles]]></category><guid isPermaLink="false">http://gavin-holt.com/save-your-vista-laptop-battery/</guid> <description><![CDATA[Having received a Samsung R60 plus Laptop for my Christmas, I was stunned by the Aero Interface that comes with all the premium versions of Vista. One thing I was un-happy about was the battery life of my laptop. From what I had read users who had the standard R60 with XP Pro installed where [...]]]></description> <content:encoded><![CDATA[<p>Having received a <a href="http://www.samsung.com/he/products/notebookcomputer/r_series/np_r60plus.asp" target="_blank">Samsung R60 plus</a> Laptop for my Christmas, I was stunned by the <a href="http://en.wikipedia.org/wiki/Windows_Aero" target="_blank">Aero Interface</a> that comes with all the premium versions of Vista.</p><p>One thing I was un-happy about was the battery life of my laptop. From what I had read users who had the standard R60 with XP Pro installed where saying 3-4 hours so why was I getting 1 and a half to 2 hours from my upgraded model?</p><p>The answer was simple; the beautiful interface was draining my battery. After many hours of goggling I found this wonderful tool.</p><p><a href="http://www.codeplex.com/vistabattery" target="_blank"><strong>The Vista Battery Saver</strong></a></p><p>This great little piece of software (Which is Free!) runs in the system tray and can manage how much of the Aero Interface is enabled and at what levels it starts switching features off.</p><p>For Example, my settings mean that the Aero Interface is completely disabled if I&#8217;m not connected to mains power. I don&#8217;t use the sidebar, but if you do you also have the option to turn it off when on battery or below a certain battery level.</p><p>The author of the software claims it can extend notebooks battery life by up to 70%.</p><p>If anyone has any other tips on getting more juice out of your mobile battery leave a comment or <a href="/contact-me/" target="_blank">Contact Me</a> and I&#8217;ll give it a go!</p> ]]></content:encoded> <wfw:commentRss>http://www.gavin-holt.com/articles/save-your-vista-laptop-battery/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Forwarding Hotmail-Windows Live Mail</title><link>http://www.gavin-holt.com/articles/forwarding-hotmailwindows-live-mail/</link> <comments>http://www.gavin-holt.com/articles/forwarding-hotmailwindows-live-mail/#comments</comments> <pubDate>Sat, 13 Sep 2008 17:23:27 +0000</pubDate> <dc:creator>Gavin Holt</dc:creator> <category><![CDATA[Articles]]></category><guid isPermaLink="false">http://gavin-holt.com/forwarding-hotmailwindows-live-mail/</guid> <description><![CDATA[I was recently asked by a friend how he could forward his Hotmail email address to a new one that he can get on his phone. After much head scratching and cursing Microsoft I found the answer. To do this you must login to the Hotmail/Windows Live Mail web site. Once you have logged into [...]]]></description> <content:encoded><![CDATA[<p>I was recently asked by a friend how he could forward his Hotmail email address to a new one that he can get on his phone. After much head scratching and cursing Microsoft I found the answer. To do this you must login to the <a href="http://mail.live.com/" target="_blank">Hotmail/Windows Live Mail web site</a>.</p><p> <span id="more-3"></span>Once you have logged into the account that you wish to forward, its a relatively simple process, In fact it can be put into 3 simple steps!(Pictures provided to make it even simpler).</p><ol><li><div>Once logged into the web site, click the options link (found on the right hand side of the shiny blue bar)<p><a href="http://gavholt.s3.amazonaws.com/wp-content/uploads/2008/09/forward-wlm-1.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="forward_wlm_1" src="http://gavholt.s3.amazonaws.com/wp-content/uploads/2008/09/forward-wlm-1-thumb.png" width="244" height="134" /></a></p></p></div></li><li><div>Once in the options page, under the &#8216;Manage your account&#8217; heading find &#8216;Forward mail to another e-mail account&#8217;<p><a href="http://gavholt.s3.amazonaws.com/wp-content/uploads/2008/09/forward-wlm-2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="forward_wlm_2" src="http://gavholt.s3.amazonaws.com/wp-content/uploads/2008/09/forward-wlm-2-thumb.png" width="244" height="87" /></a></p></p></div></li><li><div>On the next page, select the second option (&quot;Forward e-mail to another address&quot;) and enter the new email address where you would like to receive your hotmail.Press enter and your done!<p><a href="http://gavholt.s3.amazonaws.com/wp-content/uploads/2008/09/forward-wlm-3.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="forward_wlm_3" src="http://gavholt.s3.amazonaws.com/wp-content/uploads/2008/09/forward-wlm-3-thumb.png" width="244" height="65" /></a></p></p></div></li></ol><p align="left">A few warnings,</p><ol><li><div>No mail will be saved to your Hotmail account, it will go straight to your new account and wont be accessible via any Hotmail interface.</div></li><li><div>You <strong>MUST </strong>visit your Hotmail account once ever 120 days else it will be closed and your mail will stop forwarding.</div></li></ol><p align="left">Remember, you can &quot;un-forward&quot; you email at anytime by following steps 1 &amp; 2 and then selecting the &quot;Don&#8217;t forward&quot; option</p><p align="left">If anyone has any guides on how to do this with other providers or even a way to access the original Hotmail address from a mobile then comment or <a href="/contact-me" target="_blank">Contact Me</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.gavin-holt.com/articles/forwarding-hotmailwindows-live-mail/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching using disk
Object Caching 482/568 objects using disk
Content Delivery Network via Amazon Web Services: S3: gavholt.s3.amazonaws.com

Served from: www.gavin-holt.com @ 2010-07-29 21:09:15 -->