<?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 | Woody Hayday | Blog</title>
	<atom:link href="https://blog.woodylabs.com/category/code/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.woodylabs.com</link>
	<description>An exploration of life, technology and writing</description>
	<lastBuildDate>Wed, 17 Sep 2025 10:20:57 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.woodylabs.com/wp-content/uploads/2015/01/cropped-woody-hayday-yosemite-glacier-point-32x32.jpg</url>
	<title>PHP | Woody Hayday | Blog</title>
	<link>https://blog.woodylabs.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Projects 2024</title>
		<link>https://blog.woodylabs.com/2024/10/projects-2024/</link>
		
		<dc:creator><![CDATA[Woody]]></dc:creator>
		<pubDate>Mon, 14 Oct 2024 09:43:20 +0000</pubDate>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Looking Forward]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">http://blog.woodylabs.com/?p=1203</guid>

					<description><![CDATA[<p>This blog has been gathering dust for almost a decade &#x1f605; I thought I&#8217;d drop one refresher post here detailing my recent projects just so the few of you who end up here have another launch pad to rocket of! This year I&#8217;ve been pursuing the idea of my Ikigai, trying to get closer to [&#8230;]</p>
<p>The post <a href="https://blog.woodylabs.com/2024/10/projects-2024/">Projects 2024</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p><hr /><a href="https://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
										<content:encoded><![CDATA[<p>This blog has been gathering dust for almost a decade <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f605.png" alt="😅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>I thought I&#8217;d drop one refresher post here detailing my recent projects just so the few of you who end up here have another launch pad to rocket of!</p>



<p>This year I&#8217;ve been pursuing the idea of my Ikigai, trying to get closer to the best work I can do. I&#8217;m fairly sure at this point that it involves supporting fledgling entrepreneurs who are just about to, or already have made the leap. I&#8217;ve found myself mentoring new entrepreneurs naturally in the past, and have made several businesses helping them with products. Now I&#8217;m trying to hammer down even further and really work out what good I can do.</p>



<p>Here&#8217;s this years projects so far:</p>



<p><a href="https://nichereport.io" title="Niche Report.io"><strong>Niche Report.io</strong></a></p>



<p>A Niche Report is going to be the first step for a new entrepreneur, (or a seasoned one entering a new niche). This new service takes 4 weeks worth of work doing market research, and rips through the process with AI, bots, data crunching and multi-exit oversight (me). In the end you get a market research report on your niche within 24 hours; and it&#8217;s got all the key signals you need to inform how you should proceed into the niche, or even if you should.</p>



<p><a href="https://projectpages.io" title="Project Pages"><strong>Project Pages</strong></a></p>



<p><a href="https://projectpages.io/">Project Pages is a WordPress portfolio maker</a>, in essence. It&#8217;s a plugin I made 8y ago or so, but I&#8217;ve rebooted it. It&#8217;s focus is on helping makers, creators, and generally capable people document their creator journeys and try to connect-the-dots of their work. This runs parallel to my overall search for my own ikigai, and you can see I&#8217;ve updated <a href="https://woodyhayday.com/projects/">my own personal project pages</a> recently. </p>



<p><a href="https://coupleflow.app" target="_blank" rel="noopener" title=""><strong>CoupleFlow.app</strong></a></p>



<p>CoupleFlow is an AI Insights tool for relationship communication. It sits with you in your couples DMs on Telegram and gives you weekly check-ins which help you grow as a couple. CoupleFlow uses tuned AI which is trained on the latest relationship science to observe for the characteristics of a healthy relationship, and steer you towards it. It might help with a range of communication problems with relationships or marriages. (I will keep improving it with feedback over at CoupleFlow.app.)</p>



<p>I also added a <a href="https://coupleflow.app/telegram-chat-analyzer">Telegram Chat Analyser</a> which gives users chat stats on their Telegram chats.</p>



<p>A small side project: <a href="https://crmlist.io/">CRM List.io</a> &#8211; compares various CRM apps so you can find the one which fits your business.</p>



<p>As ever, you&#8217;ll get up to date stuff on my main website (this is an old blog which only gets an update a decade 😀 ): <a href="https://woodyhayday.com/blog/" title="woodyhayday.com/blog">woodyhayday.com/blog</a></p>



<p>Here&#8217;s to all the makers and entrepreneurs! Long may we make things.</p>



<p></p>



<p>Woody</p>



<p>14th Oct 2024</p>



<p>P.S. I&#8217;d also like to mention my friend Mike Stott has started a great new blog on <a href="https://mikestott.me/">Content that Converts</a>, which is also valuable to new entrepreneurs, check it out!</p><p>The post <a href="https://blog.woodylabs.com/2024/10/projects-2024/">Projects 2024</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hotmail and Character Sets: Make Sure Your Emails Get There</title>
		<link>https://blog.woodylabs.com/2012/09/hotmail-and-character-sets-make-sure-your-emails-get-there/</link>
		
		<dc:creator><![CDATA[Woody]]></dc:creator>
		<pubDate>Wed, 19 Sep 2012 13:18:16 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[hotmail]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[web app prototypes]]></category>
		<category><![CDATA[web dev]]></category>
		<guid isPermaLink="false">http://blog.woodylabs.com/?p=916</guid>

					<description><![CDATA[<p>It&#8217;s been a hectic few months &#8211; the web development consultancy is going well with several new web app prototypes/platforms released in the last few months, a new plugin (Social Gallery for WordPress) is being well received (and even imitated already!) and amongst all that ChooseFest has had some interesting developments. Also I am now [&#8230;]</p>
<p>The post <a href="https://blog.woodylabs.com/2012/09/hotmail-and-character-sets-make-sure-your-emails-get-there/">Hotmail and Character Sets: Make Sure Your Emails Get There</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p><hr /><a href="https://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s been a hectic few months &#8211; the <a href="http://www.stormgate.co.uk/blog/web-developer-for-hire/">web development consultancy</a> is going well with several new web app prototypes/platforms released in the last few months, a new plugin (<a href="http://www.socialgalleryplugin.com">Social Gallery for WordPress</a>) is being well received (and even imitated already!) and amongst all that <a href="http://www.choosefest.com">ChooseFest</a> has had some interesting developments. Also I am now a year older. Anyway enough with the stereotypical excuses for lack of blogging, here&#8217;s a snippet-size-little blog post with a little should-of-been-obvious fix for sending emails out of php in interesting character sets e.g. Japanese, sometimes its the most ridiculously simple stuff that catches you out!</p>
<p style="text-align: left;">Traditional and SMTP emails out of php&#8217;s main mail() function will often be ignored, it seems, by Hotmail (and sometimes yahoo) if the email contains character without specific mention of the correct character set. It&#8217;s irritating as every other carrier seems to just deal with it but Hotmail (and sometimes yahoo) just act like no email ever existed, there&#8217;s no bounce-back, no spam folder message &#8211; just nothing.</p>
<p style="text-align: center;"><img decoding="async" class="aligncenter  wp-image-918" title="Are your web app emails getting to their end destination? Blocked by Hotmail?" src="https://blog.woodylabs.com/wp-content/uploads/2012/09/hotmail-blocking-emails.jpg" alt="" width="162" height="100" /><span id="more-916"></span></p>
<p>In any case, set the header of your email to contain the character set, and if the email your sending is html then make sure you include that in the email body meta, seems obvious but is annoyingly easy to forget.</p>
<p>e.g. Add this line to whatever headers you are using:</p>
<pre class="brush: php; title: ; notranslate">$headers .= &quot;Content-Type: text/html; charset=UTF-8\r\n&quot;;</pre><p>The post <a href="https://blog.woodylabs.com/2012/09/hotmail-and-character-sets-make-sure-your-emails-get-there/">Hotmail and Character Sets: Make Sure Your Emails Get There</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Facebook-Style Photo Viewer WordPress Plugin</title>
		<link>https://blog.woodylabs.com/2012/07/facebook-style-photo-viewer-wordpress-plugin/</link>
		
		<dc:creator><![CDATA[Woody]]></dc:creator>
		<pubDate>Thu, 19 Jul 2012 13:00:04 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Aberaeron]]></category>
		<category><![CDATA[Facebook-Style]]></category>
		<category><![CDATA[Lightbox]]></category>
		<category><![CDATA[Social Gallery]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<guid isPermaLink="false">http://blog.woodylabs.com/?p=867</guid>

					<description><![CDATA[<p>It&#8217;s been a hectic few months, many successful client projects, many successfuly additions to ChooseFest and StormGate and I haven&#8217;t let myself schedule any writing time. This hiatus has been intentional and it&#8217;s non lexical productivity has been a positive necessity. Short of writing a list of festival essentials the only thing I have written [&#8230;]</p>
<p>The post <a href="https://blog.woodylabs.com/2012/07/facebook-style-photo-viewer-wordpress-plugin/">Facebook-Style Photo Viewer WordPress Plugin</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p><hr /><a href="https://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s been a hectic few months, many successful client projects, many successfuly additions to <a href="http://www.choosefest.com" title="ChooseFest Festival Finder">ChooseFest</a> and <a href="http://www.stormgate.co.uk" title="UK High End Web Development">StormGate</a> and I haven&#8217;t let myself schedule any writing time. This hiatus has been intentional and it&#8217;s non lexical productivity has been a positive necessity. Short of writing <a href="http://www.choosefest.com/blog/2012/festivals-guide-essential-items-for-a-festival/" title="Guides: List of items essential for a festival">a list of festival essentials</a> the only thing I have written has been code, tons of the stuff. I will be back with a new blogpost or two soon, anyhow on to the main feature:</p>
<h3>Facebook-Style Photo Viewer &#8211; Social Gallery</h3>
<p>Social Gallery is a WordPress plugin which adds a fancy &#8220;Facebook-style&#8221; photo viewer to your blog images. It&#8217;s a bit of an improvement on the existing lightbox plugins which have served their time well but really haven&#8217;t been innovated in too long. This WordPress plugin came about through the combined timing of a client requirement and a schedule collapse, but the end product has ended up working out quite nicely (you can see it in effect by clicking the image below.) </p>
<div align="center" style="background:#2068c4;color:#FFF"><strong>Click this:</strong><br />
<a href="https://blog.woodylabs.com/wp-content/uploads/2011/01/aberaeron-sky.jpg" class="socialGallery"><img decoding="async" src="https://blog.woodylabs.com/wp-content/uploads/2011/01/aberaeron-sky.jpg" alt="" title="An Aberaeron Sky! - Photo is one of mine I found lying about in WordPress - Aberaeron, West Wales" class="aligncenter wp-image-533" style="width:300px"  /></a><br />(Photo is one of mine I found lying about in WordPress &#8211; Aberaeron, West Wales)</div>
<p><span id="more-867"></span><br />
What your seeing is version 1.0, you can see the full website <a href="http://www.socialgalleryplugin.com" title="Social Gallery WordPress Plugin">here</a> and <a href="http://codecanyon.net/item/social-gallery-wordpress-photo-viewer-plugin/2665332?ref=stormgate" title="Buy Social Gallery WordPress plugin">buy it for $14 here</a>. Future versions will have some fancy additions such as Disqus comments (as well as Facebook comments) and more clever ways to feed content into its sidebar. </p>
<p>Social Gallery rides off the wave that is Facebook, using a similar photo-viewing style to give your users a better media experience as well as garnering the benefits of association with Facebook. If you think about it 900+ million users will be familiar with this way of viewing images so it makes sense for more of us to adopt it, Social Gallery is a really easy way to add this functionality to your WordPress. </p>
<p><a href="https://blog.woodylabs.com/wp-content/uploads/2012/07/SocialGalleryWordpressPlugin-preview.png" class="socialGallery"><img fetchpriority="high" decoding="async" src="https://blog.woodylabs.com/wp-content/uploads/2012/07/SocialGalleryWordpressPlugin-preview-450x228.png" alt="" align="right" title="Social Gallery - Adding Facebook-style photo viewing to your WordPress Blog. Get it today @ SocialGalleryPlugin.com" width="450" height="228" class="alignright size-medium wp-image-869" srcset="https://blog.woodylabs.com/wp-content/uploads/2012/07/SocialGalleryWordpressPlugin-preview-450x228.png 450w, https://blog.woodylabs.com/wp-content/uploads/2012/07/SocialGalleryWordpressPlugin-preview.png 590w" sizes="(max-width: 450px) 100vw, 450px" /></a><strong>Features:</strong></p>
<ul>
<li>Facebook-style lightbox</li>
<li>Get More Likes &#038; More Shares</li>
<li>Get More Comments</li>
<li>Engage your Visitors</li>
<li>Adds Facebook Comments</li>
<li>Familiar to Facebook’s 900+ million users</li>
<li>Easy to Install</li>
</ul>
<p>If you want to know more just hop over to <a href="http://www.socialgalleryplugin.com" title="Social Gallery WordPress Plugin">SocialGalleryPlugin.com</a></p><p>The post <a href="https://blog.woodylabs.com/2012/07/facebook-style-photo-viewer-wordpress-plugin/">Facebook-Style Photo Viewer WordPress Plugin</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Recent Projects, Top Freelancer People Per Hour</title>
		<link>https://blog.woodylabs.com/2011/12/recent-projects-top-freelancer-on-people-per-hour/</link>
		
		<dc:creator><![CDATA[Woody]]></dc:creator>
		<pubDate>Fri, 02 Dec 2011 09:45:57 +0000</pubDate>
				<category><![CDATA[Looking Back]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[freelancing]]></category>
		<category><![CDATA[people per hour]]></category>
		<guid isPermaLink="false">http://blog.woodylabs.com/?p=826</guid>

					<description><![CDATA[<p>It was a busy November, but it paid off &#8211; completed a good few projects for some great clients, and whats more I won no# 1 Top Freelancer @ people per hour! You can read more about some of my recent projects here, although there&#8217;s only a few case studies up, the most public of [&#8230;]</p>
<p>The post <a href="https://blog.woodylabs.com/2011/12/recent-projects-top-freelancer-on-people-per-hour/">Recent Projects, Top Freelancer People Per Hour</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p><hr /><a href="https://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
										<content:encoded><![CDATA[<div align="center"><a href="http://www.peopleperhour.com/toprankedfreelancers.php?month=1320105600" target="_blank"><img decoding="async" class="aligncenter" title="I am Top 1 of 169,000 freelancers for November!" src="http://www.woodyhayday.com/pph/pph-TopFreelancer.png" alt="I am Top 1 of 169,000 freelancers for November!" width="150" height="110" border="0" /></a></div>
<p>It was a busy November, but it paid off &#8211; completed a good few projects for some great clients, and whats more I won no# 1 Top Freelancer @ people per hour!</p>
<p>You can read more about some of my recent projects <a href="http://www.woodyhayday.com/pph/">here</a>, although there&#8217;s only a few case studies up, the most public of the projects was a great life planning app that I built to first iteration, you can check it out (DO IT NOW!) @ <a href="http://www.5years.me" target="_blank">5years.me</a> &#8211; built in the cloud on PaaS, behind the scenes I have also helped develop a social media analytics platform that is a marketeers wet dream, maybe as it gets properly released I will divulge more on that. Needless to say November was a great month of good work for great clients &#8211; off the radar now until my big project in early 2012 <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<div align="center"><a href="http://www.woodyhayday.com/pph/php-mysql-jquery-web-application-built-cloudcontrol.png" target="_blank"><img loading="lazy" decoding="async" src="http://www.woodyhayday.com/pph/life-planning-web-app-built-in-the-cloud-php-jquery-mysql-schema.png" width="640" height="320" alt="Life Planning Web App Built in the cloud (cloudcontrolled.com)" border="0" /></a></div><p>The post <a href="https://blog.woodylabs.com/2011/12/recent-projects-top-freelancer-on-people-per-hour/">Recent Projects, Top Freelancer People Per Hour</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Facebook time in php &#8211; Facebook uses GMT not PDT/PST?</title>
		<link>https://blog.woodylabs.com/2011/10/facebook-time-in-php-facebook-uses-gmt-not-pdtpst/</link>
					<comments>https://blog.woodylabs.com/2011/10/facebook-time-in-php-facebook-uses-gmt-not-pdtpst/#comments</comments>
		
		<dc:creator><![CDATA[Woody]]></dc:creator>
		<pubDate>Thu, 20 Oct 2011 12:09:11 +0000</pubDate>
				<category><![CDATA[Facebook Pages]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook apps]]></category>
		<category><![CDATA[facebook pages]]></category>
		<category><![CDATA[facebook time]]></category>
		<category><![CDATA[timezones]]></category>
		<guid isPermaLink="false">http://blog.woodylabs.com/?p=793</guid>

					<description><![CDATA[<p>I don&#8217;t know whether its purely related to my location when I am calling facebooks&#8217; graph API or what, but all the talk about what timestamps facebooks API returns seems to be wrong. Perhaps they&#8217;ve changed something, perhaps they are re-adjusting them just for me. If its the latter I wonder why they are giving me GMT [&#8230;]</p>
<p>The post <a href="https://blog.woodylabs.com/2011/10/facebook-time-in-php-facebook-uses-gmt-not-pdtpst/">Facebook time in php – Facebook uses GMT not PDT/PST?</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p><hr /><a href="https://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
										<content:encoded><![CDATA[<p>I don&#8217;t know whether its purely related to my location when I am calling facebooks&#8217; graph API or what, but all the talk about what timestamps facebooks API returns seems to be wrong. Perhaps they&#8217;ve changed something, perhaps they are re-adjusting them just for me. If its the latter I wonder why they are giving me GMT when I am in Belgium? Is it based on the USER?</p>
<div align="center"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3308/3324587240_c663bd1c9b_z.jpg?zz=1" width="640" height="425" alt="Antique Clock Face"><br /><a href="http://www.flickr.com/photos/arcticpuppy/3324587240/" title="Antique Clock Face by tibchris, on Flickr" rel="nofollow" target="_blank">Clock Face by tibchris</a><br /><strong>Facebook Time in PHP, who the what where?</strong></div>
<p>If you haven&#8217;t tried pulling anything time-sensitive out of the graph API yet, don&#8217;t, that&#8217;s my advice. There is not a single bit of coherent explanation as to how the API hand&#8217;s out times, when I first researched it I had written on my pad &#8220;Pacific time&#8221;&#8230;great, did my past (possibly beer holding) self not remember that Pacific time is one thing half the year and another the other half? PDT/PST? Obviously not. What&#8217;s more, now when I check (post something on a page, grab it with graph API) &#8211; its giving me GMT+00 times, WHEN I&#8217;M IN GMT+01.</p>
<p>&nbsp;</p>
<p>All I can work out is facebook have either been pleasant enough to convert the time to the users original registration locale (likely, and pleasant) and not noted it down ANYWHERE publicly, or they have chosen to use GMT. Probably the former, either way &#8211; facebook developers &#8211; we need a better solution for working with facebook times.</p><p>The post <a href="https://blog.woodylabs.com/2011/10/facebook-time-in-php-facebook-uses-gmt-not-pdtpst/">Facebook time in php – Facebook uses GMT not PDT/PST?</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.woodylabs.com/2011/10/facebook-time-in-php-facebook-uses-gmt-not-pdtpst/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Hosting facebook Apps/Applications/iFrame Pages on 1and1 (SSL)</title>
		<link>https://blog.woodylabs.com/2011/08/hosting-facebook-appsapplicationsiframe-pages-on-1and1-ssl/</link>
					<comments>https://blog.woodylabs.com/2011/08/hosting-facebook-appsapplicationsiframe-pages-on-1and1-ssl/#comments</comments>
		
		<dc:creator><![CDATA[Woody]]></dc:creator>
		<pubDate>Wed, 31 Aug 2011 08:28:37 +0000</pubDate>
				<category><![CDATA[Facebook Graph API]]></category>
		<category><![CDATA[Facebook Pages]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[1and1]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook apps]]></category>
		<category><![CDATA[fan gating]]></category>
		<category><![CDATA[fan page]]></category>
		<category><![CDATA[ssl]]></category>
		<guid isPermaLink="false">http://blog.woodylabs.com/?p=778</guid>

					<description><![CDATA[<p>For those who run facebook fan pages you will likely know about fan gating and the importance of adding your own content to your facebook fanpage. This used to be done with the facebook static fbml app but that&#8217;s really the old way, looking forward the best way is to make its own specific app. [&#8230;]</p>
<p>The post <a href="https://blog.woodylabs.com/2011/08/hosting-facebook-appsapplicationsiframe-pages-on-1and1-ssl/">Hosting facebook Apps/Applications/iFrame Pages on 1and1 (SSL)</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p><hr /><a href="https://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
										<content:encoded><![CDATA[<p>For those who run facebook fan pages you will likely know about fan gating and the importance of adding your own content to your facebook fanpage. This used to be done with the facebook static fbml app but that&#8217;s really the old way, looking forward the best way is to make its own specific app. There&#8217;s <a href="http://www.hyperarts.com/blog/adding-iframe-application-to-facebook-fan-page/" rel="nofollow" target="_blank">a bunch</a> of <a href="http://www.hyperarts.com/blog/facebook-secure-browsing-https-iframe-tabs-mixed-content-warnings/" rel="nofollow" target="_blank">really good stuff</a> out there about setting up your apps but none of it seems to deal with the middle level guys who don&#8217;t want to shell out time/capital setting up amazon hosting (probably a good idea either way) or don&#8217;t strictly have https for the domain, those that just need an interim/growth testing solution with their current hosts, specifically in this case 1and1.</p>
<p>You <em>can</em> host facebook apps on any host, but hosting somewhere unsecure (not accessible via https) will flag up the following prompt for anyone browsing to the page with secure browsing turned on (high proportion of fb users.) You CAN also use amazon cloud storage (S3) for free https file storage, up to a level, however you <em>cannot run server side code</em> (php/ASP.NET) without setting up a server with their EC service.</p>
<div align="center"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-779" title="facebook-fan-page-app-creation-on-1and1-ssl" src="https://blog.woodylabs.com/wp-content/uploads/2011/08/facebook-fan-page-app-creation-on-1and1-ssl.png" alt="" width="458" height="217" srcset="https://blog.woodylabs.com/wp-content/uploads/2011/08/facebook-fan-page-app-creation-on-1and1-ssl.png 458w, https://blog.woodylabs.com/wp-content/uploads/2011/08/facebook-fan-page-app-creation-on-1and1-ssl-450x213.png 450w" sizes="auto, (max-width: 458px) 100vw, 458px" /><br /><em>Not pretty eh</em>? What will that do to your conversion rates? Yep nothing good.</div>
<p><span id="more-778"></span></p>
<p>Its not just the mavericks either, for example brands like banana republic are still running http stuff, prompting the user with this message on loading their like-capture pages.</p>
<h3>Set up 1and1 shared hosting to host Secure SSL facebook apps/applications/tab pages</h3>
<p>So anyway here&#8217;s the cheap, quick way to hosting your facebook apps SECURELY using 1and1 shared hosting.</p>
<ol>
<li>Log onto admin.1and1.co.uk (or .com)</li>
<li>(Optional) Register a domain name which you don&#8217;t mind generically hosting your fb content. For me this is www.whfb.co.uk &#8211; this will only show up if users looked at the information for the frame, probably wont ever matter, but if you are running a whole host of different niche pages it might be worth it for simplicity/segmentation.</li>
<li>Go to domain management section and click &#8220;Shared SSL Encryption&#8221; under SSL option<br /><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-780" title="shared-ssl-for-facebook-apps-applications-1and1" src="https://blog.woodylabs.com/wp-content/uploads/2011/08/shared-ssl-for-facebook-apps-applications-1and1.png" alt="" width="364" height="83" /></li>
<li>Assign the Shared SSL Encryption to your generic domain/main domain you want to use<br /><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-781" title="assign-ssl-to-domain-for-creating-facebook-apps-secure" src="https://blog.woodylabs.com/wp-content/uploads/2011/08/assign-ssl-to-domain-for-creating-facebook-apps-secure.png" alt="" width="224" height="76" /></li>
<li>Setup a folder under your domain like you would with any facebook page, use the facebook php api to fangate or just put some html up there, bare in mind all objects referenced in what you put up should direct resources to &#8220;https&#8221; not http. That is if you reference &#8220;http://www.example.com/someimage.png&#8221;, switch the http for https (save your own copy of the file if you need to. Referencing images locally in the folder should work fine for http/https if you use the same domain.</li>
<li>Setup your facebook app (theres thousands of guides on this&#8230;) and set the following (under &#8220;Select how your app integrates with Facebook -&gt; Page Tab&#8221;)<br /><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-782" title="select-how-your-tab-app-integrates-with-facebook-http-https" src="https://blog.woodylabs.com/wp-content/uploads/2011/08/select-how-your-tab-app-integrates-with-facebook-http-https.png" alt="" width="423" height="146" /></li>
<li>Add the app to your facebook fan page and visit it, (setting it as default landing page perhaps ;)) &#8211; you should not get any security messages, if you have you need to go back and check your html is pointing to any external elements via https.</li>
</ol>
<p>Chances are if you are running 1and1 shared hosting (or any other major) then you will have SSLRelays free of charge with your package, what&#8217;s more this takes about 1 minute to setup, so test with this before you stick stuff in the cloud!</p><p>The post <a href="https://blog.woodylabs.com/2011/08/hosting-facebook-appsapplicationsiframe-pages-on-1and1-ssl/">Hosting facebook Apps/Applications/iFrame Pages on 1and1 (SSL)</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.woodylabs.com/2011/08/hosting-facebook-appsapplicationsiframe-pages-on-1and1-ssl/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Remove unwanted eBay strings from A2P [Auction2post] posts with Automated Editor</title>
		<link>https://blog.woodylabs.com/2011/08/remove-unwanted-ebay-strings-from-a2p-auction2post-posts-with-automated-editor/</link>
					<comments>https://blog.woodylabs.com/2011/08/remove-unwanted-ebay-strings-from-a2p-auction2post-posts-with-automated-editor/#comments</comments>
		
		<dc:creator><![CDATA[Woody]]></dc:creator>
		<pubDate>Thu, 18 Aug 2011 04:58:32 +0000</pubDate>
				<category><![CDATA[Affiliate Marketing]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Search Engine Optimisation]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Auction2Post]]></category>
		<category><![CDATA[Automated Editor]]></category>
		<guid isPermaLink="false">http://blog.woodylabs.com/?p=718</guid>

					<description><![CDATA[<p>Free rules file with this post! Do you use Auction2Post [A2P]? If you don&#8217;t its a wordpress plugin which automatically implants listings from ebay as wordpress posts, including affiliate links through the ebay partner network from which you earn a commission. Its quite useful. Read my post about it here. Anyhow if you don&#8217;t use the [&#8230;]</p>
<p>The post <a href="https://blog.woodylabs.com/2011/08/remove-unwanted-ebay-strings-from-a2p-auction2post-posts-with-automated-editor/">Remove unwanted eBay strings from A2P [Auction2post] posts with Automated Editor</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p><hr /><a href="https://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
										<content:encoded><![CDATA[<h3 style="text-align: right;">Free rules file with this post!</h3>
<p>Do you use <a href="https://blog.woodylabs.com/2009/10/auction-2-post/">Auction2Post</a> [A2P]? If you don&#8217;t its a wordpress plugin which automatically implants listings from ebay as wordpress posts, including affiliate links through the ebay partner network from which you earn a commission. Its quite useful. Read my post about it <a href="https://blog.woodylabs.com/2009/10/auction-2-post/">here</a>. Anyhow if you don&#8217;t use the plugin you can pretty much skip this post, unless you use a similar thing which is generating all kinds of nasty strings you don&#8217;t want in your posts <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>This post will show you how to sanitise your auction2post posts for annoying (and contract breaking) ebay auction strings, it even has 125 rules already in a file for import!</p>
<h3>The problem</h3>
<p>Auction2Post is great in lots of respects, its well written and does a prescribed job. Where it caused irritation for me is arguably after its done its job, after the wordpress plugin had created its posts. You see you can create posts via templates, which is great, it allows enough customisation for most, however I wanted a bit of text processing as often you are left with irritating auction footers and garbage text which make the user hit back or close at a displeasing rate (some of these ebay strings might actually make your Auction 2 posts sites break ebay partner network terms of service, its really worth sanitising your posts as I describe below!)</p>
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;">
<strong>For Example:</strong></p>
<p>My EBAY User ID: yah00002009</p>
<p>welcome to Our ebay Store shop</p>
<p>IF YOU ARE NEW TO EBAY OR DO NOT HAVE A PAY PAL ACCOUNT PLEASE CONTACT ME SO WE CAN HELP MAKE ARRANGEMENTS WITH YOU</p>
</div>
<h3>The Solution</h3>
<p>This problem with Auction 2 Post and wordpress is one of the reasons <a href="http://www.automatededitor.com"  target="_blank">Automated Editor</a> was born, to give a bit more freedom in text processing, wordpress filters are great but I don&#8217;t think filtering hundreds of ebay phrases like that is effective.</p>
<p><span id="more-718"></span></p>
<p>If you want to cleanse your Auction2post posts of dirty ebay auction footers and the like here is how I currently do it:</p>
<ol>
<li>Install Automated Editor plugin on the blog in question. (Get it <a href="http://www.automatededitor.com/launch-offer-save-over-50-percent/" target="_blank">here</a> and install like a normal plugin.)</li>
<li>Go to the plugin (Auto Editor on its plugin menu) and read the disclaimer (big red box) and THEN accept it.</li>
<li>Download the rules file I have created (Get it at the bottom of this post) and unzip it somewhere.
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-726" title="ebay-string-replace-rules-file" src="https://blog.woodylabs.com/wp-content/uploads/2011/08/ebay-string-replace-rules-file.png" alt="" width="96" height="116" /></div>
</li>
<li>Go to &#8220;Import/Export&#8221; on the Automated Editor plugin menu.
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-727" title="using-automated-editor-sidebar" src="https://blog.woodylabs.com/wp-content/uploads/2011/08/using-automated-editor-sidebar.png" alt="" width="156" height="163" /></div>
</li>
<li>Choose the aforementioned rules file and hit import.
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-728" title="automated-editor-and-auction-2-post-importexport" src="https://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-and-auction-2-post-importexport.png" alt="" width="498" height="132" srcset="https://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-and-auction-2-post-importexport.png 498w, https://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-and-auction-2-post-importexport-450x119.png 450w" sizes="auto, (max-width: 498px) 100vw, 498px" /></div>
</li>
<li>You should now have 125 or so rules in your rules list <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
<li>Now go to Schedules on the plugin menu and then click Add New.</li>
<li>Scroll down and hit Select All (under the long list of rule checkboxes ebay1, ebay2 etc.)
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-723" title="automated-editor-plugin-ebay-replace-select-all" src="https://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-plugin-ebay-replace-select-all.png" alt="" width="355" height="144" /></div>
</li>
<li>Scroll down again and select Most Recent Post from the Target dropdown.</li>
<li>Make sure run option is on &#8220;After a post is published&#8221;.
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-724" title="automated-editor-schedule-for-ebay-phrase-replace" src="https://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-schedule-for-ebay-phrase-replace.png" alt="" width="344" height="220" /></div>
</li>
<li>Save it.</li>
<li>Turn on schedules.
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align: center;"><a target="_blank" href="https://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-automation-turned-on.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-722" title="automated-editor-automation-turned-on-sm" src="https://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-automation-turned-on-sm.png" border="0" alt="" width="600" height="190" srcset="https://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-automation-turned-on-sm.png 600w, https://blog.woodylabs.com/wp-content/uploads/2011/08/automated-editor-automation-turned-on-sm-450x142.png 450w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></div>
</li>
<li>Post a test post, either via A2P or manually, it should remove any of the 125 annoying (common) ebay auction strings it finds! Sorted.</li>
</ol>
<h4>Notes on this method:</h4>
<ul>
<li>You will need the <a href="http://www.automatededitor.com/compare-versions/" target="_blank">Full version</a> (Ultra Pro) of Automated Editor, the free version is limited to 3 rules and this rules file alone has 125 ebay-string removing rules. It&#8217;s cheap though <a href="http://www.automatededitor.com/launch-offer-save-over-50-percent/" target="_blank">here</a>.</li>
<li>If you already have Auction2Post auction posts in the system you will have to setup a different schedule to operate on those, I usually set this up before I set any automation (it&#8217;s quite easy, just do the same thing and switch out &#8220;Most Recent post&#8221; for &#8220;all posts&#8221;, run it once then disable the schedule &#8211; you don&#8217;t want it operating on them all every time!)</li>
<li>Currently this removes 125 strings I have found previously, mostly from uk auctions, I am considering writing a simplified version of this whole setup, an &#8220;Auction2Post Post Cleaner&#8221; which you can just activate and leave, perhaps with cloud rules, so watch this space. Good thing about the above setup though is you can continually improve your own rules file by adding your own strings.</li>
</ul>
<h3>Rules File</h3>
<div>The link below offers a RAR&#8217;d version of my Automated Editor rules file which contains 125 x ebay string removal rules, yours for free <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Please however do use carefully, as with all automated-editor situations if you don&#8217;t understand what you are doing then don&#8217;t use it, this is for the people that understand the above problem and have the full version of the plugin.</div>
<div align="center"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-726" title="ebay-string-replace-rules-file" src="https://blog.woodylabs.com/wp-content/uploads/2011/08/ebay-string-replace-rules-file.png" alt="" width="96" height="116" /><br />
<br /><a href="https://blog.woodylabs.com/downloads/Woodylabs_AE_Rules_Export_125.rar">Download Rules File</a><br />[Right click-Save as]</div><p>The post <a href="https://blog.woodylabs.com/2011/08/remove-unwanted-ebay-strings-from-a2p-auction2post-posts-with-automated-editor/">Remove unwanted eBay strings from A2P [Auction2post] posts with Automated Editor</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.woodylabs.com/2011/08/remove-unwanted-ebay-strings-from-a2p-auction2post-posts-with-automated-editor/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Automated Editor Released!</title>
		<link>https://blog.woodylabs.com/2011/08/automated-editor-released/</link>
		
		<dc:creator><![CDATA[Woody]]></dc:creator>
		<pubDate>Thu, 11 Aug 2011 12:33:55 +0000</pubDate>
				<category><![CDATA[Affiliate Marketing]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Automated Editor]]></category>
		<category><![CDATA[Small Nugget Projects]]></category>
		<guid isPermaLink="false">http://blog.woodylabs.com/?p=697</guid>

					<description><![CDATA[<p>A nice small chunk of a project, Automated Editor is a wordpress plugin which allows you to automate some of the post editing process. Written to be lightweight and flexible it can do a lot with a little input. The plugin replaces a previous script/small app I had previously commissioned to offer automatic string replacement/removal [&#8230;]</p>
<p>The post <a href="https://blog.woodylabs.com/2011/08/automated-editor-released/">Automated Editor Released!</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p><hr /><a href="https://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" src="http://www.automatededitor.com/i/automated-editor-box-109-t.png" alt="Automated Editor wordpress plugin" border="0" align="left" style="margin:9px;"/><br />
A nice small chunk of a project, <a href="http://www.automatededitor.com" target="_blank">Automated Editor</a> is a wordpress plugin which allows you to automate some of the post editing process. <a href="http://www.automatededitor.com/compare-versions/" target="_blank"><img decoding="async" src="http://www.automatededitor.com/i/download-automated-editor-word-press-plugin.png" alt="Automated Editor wordpress plugin" border="0" align="right" style="margin:5px;"/></a>Written to be lightweight and flexible it can do a lot with a little input. The plugin replaces a previous script/small app I had previously commissioned to offer automatic string replacement/removal from posts at point of publishing. With this public release version though it has had all the bells and whistles added to it, and will do some other useful tasks such as the following:</p>
<div style="margin-top:20px">
<ul>
<li>Replace one string with another (String replace) e.g. Replace ‘X’ with ‘Y’</li>
<li>Remove instances of a string (String remove) e.g. Remove all instances of ‘X’</li>
<li>Replace strings which match a regex rule with another string (Regex replace) e.g. Replace any numbers (^[0-9]{3}$) with ‘y’</li>
<li>Remove strings which match a regex rule (Regex replace) e.g. Remove any numbers (^[0-9]{3}$)</li>
<li>Prepend a string onto the front of a post (Prepend) e.g. Add ‘X’ to the top of a post</li>
<li>Append a string onto the back of a post (Append) e.g. Add ‘X’ to the bottom of a post</li>
<li>Add a post into a category (Add category) e.g. Add category ‘X’ to the post if its not already added.</li>
<li>Add a tag onto a post (Add tag) e.g. Add tag ‘X’ to the post if its not already added.</li>
<li>Change a posts date</li>
<li>Change a posts status</li>
</ul>
<p>(Taken from <a href="http://www.automatededitor.com/anatomy/#rules" target="_blank">here</a>.)</div>
<p>If you want to read more about the plugin you can check out this post on, <a href="http://www.automatededitor.com/what-is-the-point-in-the-automated-editor-plugin/" target="_blank">What is the point in Automated Editor</a> or go right ahead and <a href="http://wordpress.org/extend/plugins/automated-editor/" target="_blank">get it from wordpress.org</a> or buy the professional version at <a href="http://www.automatededitor.com/compare-versions/" target="_blank">AutomatedEditor.com</a>.</p>
<p>Watch this space for a few posts on how I use the plugin, (it works fantastically well when rigged up with <a href="https://blog.woodylabs.com/2009/10/auction-2-post/" target="_blank">Auction2Post</a>.)</p><p>The post <a href="https://blog.woodylabs.com/2011/08/automated-editor-released/">Automated Editor Released!</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>get_tag_name function for wordpress</title>
		<link>https://blog.woodylabs.com/2011/07/get_tag_name-function-for-wordpress/</link>
					<comments>https://blog.woodylabs.com/2011/07/get_tag_name-function-for-wordpress/#comments</comments>
		
		<dc:creator><![CDATA[Woody]]></dc:creator>
		<pubDate>Mon, 11 Jul 2011 16:48:04 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">http://blog.woodylabs.com/?p=679</guid>

					<description><![CDATA[<p>get_cat_name is a simple useful function to get the category name from its id in wordpress, there isn&#8217;t one for tag (and you cant use the same one&#8230;) so here&#8217;s I adapted it for tags. TBH its super lazy to be using this, but meh. Uses get_term. function get_tag_name( $tag_id ) { $tag_id = (int) [&#8230;]</p>
<p>The post <a href="https://blog.woodylabs.com/2011/07/get_tag_name-function-for-wordpress/">get_tag_name function for wordpress</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p><hr /><a href="https://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
										<content:encoded><![CDATA[<p><a href="http://codex.wordpress.org/Function_Reference/get_cat_name" rel="nofollow" target="_blank">get_cat_name</a> is a simple useful function to get the category name from its id in wordpress, there isn&#8217;t one for tag (and you cant use the same one&#8230;) so here&#8217;s I adapted it for tags. TBH its super lazy to be using this, but meh. Uses <a href="http://codex.wordpress.org/Function_Reference/get_term" rel="nofollow" target="_blank">get_term</a>.</p>
<pre class="brush: php; title: ; notranslate">
function get_tag_name( $tag_id ) {

     $tag_id = (int) $tag_id;
     $tag = get_term( $tag_id, 'post_tag'; );

     if ( ! $tag || is_wp_error( $tag ) )

          return '';

     return $tag-&gt;name;

}
</pre>
<p>I am writing <a href="http://www.automatededitor.com">Automated Editor</a>, a wordpress plugin which will give you a bunch of pro automation possibilities, in case you were wondering.</p><p>The post <a href="https://blog.woodylabs.com/2011/07/get_tag_name-function-for-wordpress/">get_tag_name function for wordpress</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.woodylabs.com/2011/07/get_tag_name-function-for-wordpress/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Hackers wrecking your shared host account? Check your Website Portfolio Integrity</title>
		<link>https://blog.woodylabs.com/2011/05/hackers-wrecking-your-shared-host-account-check-your-website-portfolio-integrity/</link>
					<comments>https://blog.woodylabs.com/2011/05/hackers-wrecking-your-shared-host-account-check-your-website-portfolio-integrity/#comments</comments>
		
		<dc:creator><![CDATA[Woody]]></dc:creator>
		<pubDate>Mon, 23 May 2011 11:41:32 +0000</pubDate>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Search Engine Optimisation]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">http://blog.woodylabs.com/?p=616</guid>

					<description><![CDATA[<p>10 days of perpetual issues with hackers. 10 DAYS. 100+ sites bombed randomly between every 5 minutes and 5 hours and that&#8217;s only after proper detection, who knows how far it had gone before. But from the relentless irritation some positives developed, if you are in the (precarious) position of hosting LOTS of websites on [&#8230;]</p>
<p>The post <a href="https://blog.woodylabs.com/2011/05/hackers-wrecking-your-shared-host-account-check-your-website-portfolio-integrity/">Hackers wrecking your shared host account? Check your Website Portfolio Integrity</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p><hr /><a href="https://blog.woodylabs.com">Visit Woody Haydays Blog</a><hr />]]></description>
										<content:encoded><![CDATA[<p>10 days of perpetual issues with hackers. 10 DAYS. 100+ sites bombed randomly between every 5 minutes and 5 hours and that&#8217;s only after proper detection, who knows how far it had gone before. But from the relentless irritation some positives developed, if you are in the (precarious) position of hosting LOTS of websites on a shared hosting account or you run a shared hosting service then read on, the value of maintaining limit pushing amounts of sites on a single account really should be considered &#8211; if the loss of earnings for all the hacker downtime doesn&#8217;t wipe out the savings then the cost of repair, security hole identification and eradication probably will, not to mention the loss of face to the search engines.</p>
<div style="border: 1px solid #09C; background-color: #b5d1ea; padding: 4px; margin: 10px; text-align:center">The following is a half vent, half information dump spawned from the irritation of being hacked, again. I have written a piece of monitoring/reconciliation software (Windows based works with your ftp account) to deal with detection/fixing. If you’re in the same boat and all you want is the alpha release, skip to the bottom and <a href="https://blog.woodylabs.com/2011/05/hackers-wrecking-your-shared-host-account-check-your-website-portfolio-integrity/#respond">drop me a comment</a>.</div>
<div align="center"><img loading="lazy" decoding="async" src="https://blog.woodylabs.com/wp-content/uploads/2011/05/is-wordpress-a-website-security-hole.jpg" alt="" title="is-wordpress-a-website-security-hole" width="600" height="338" class="aligncenter size-full wp-image-621" srcset="https://blog.woodylabs.com/wp-content/uploads/2011/05/is-wordpress-a-website-security-hole.jpg 600w, https://blog.woodylabs.com/wp-content/uploads/2011/05/is-wordpress-a-website-security-hole-450x253.jpg 450w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<h3>Website hacker entrance vectors (have any security holes?)</h3>
<p><strong>Common CMS, E-Commerce systems and forums</strong> (out of date or zero day, they all have or have had vulnerabilities) &#8211; WordPress, Drupal, OSCommerce, Gallery, PHPBB, VBulletin etc. etc. Particularly relevant here are the open source systems, but they are all susceptible &#8211; how many of these do you have installed where? For me these could of been answered with &#8220;a lot&#8221; and &#8220;some places&#8221;, clarity has now been restored but more on that later.</p>
<p><strong>CMS Plugins (^^)</strong> – Often overlooked (especially by me), installed plugins can in themselves be entry vectors, often CMS’s push their communities to develop additional functionality for their system, which is a good thing, however if the system itself doesn’t deal particularly well with the security of folder structures or indeed how plugins are accessed they can offer ways in. Be careful with plugins which deal with file management and code execution (e.g. file attachers/uploaders etc.) Try to use late version highly rated plugins from reputable sources, with things like WordPress, plugins are low risk though as it has an excellent security model.</p>
<p><strong>Bespoke server-side code and CMS&#8217;s</strong> &#8211; in my experience these is often LESS likely to get hacked, firstly &#8220;hackers&#8221; in this case are more likely to be script kiddies sitting in web cafes in some of the poorer world nations, they often use known exploits on common systems rather than trawl the web, searching for one off programmer mistakes. If you are behind the bespoke stuff leave out as many foot prints as possible and triple check everything. For bespoke stuff the most likely point of entry is simple SQL Injection, use SQL parameters.</p>
<p><strong>FTP/WebDav</strong> &#8211; This really comes down to passwords as next indicated.</p>
<p><strong>Passwords</strong> – Acquired by trojans or traffic sniffers, it becomes irrelevant what security you have in place across the whole setup if you don’t look after them properly. Avoid connecting to anything unencrypted (or at all if possible) on any network you don’t 100% trust, WIFI and wired, even if it’s a friends they could have a network sniffing Trojan on an idle machine. Install good anti-virus and protection software. Use Avast (free for private use) and Spybot Search and Destroy (these two are plenty.) Be careful with providing access to other users, whether it FTP, CMS, SSH, whatever – you may trust them but do you trust their computers?</p>
<p><span id="more-616"></span></p>
<h3>Detection and Fixing – Realising you’ve been hit and fixing it</h3>
<p>So after they gain entry, what would a hacker really do? Often with web hacking the motivation is kudos, money or sabotage – all are achieved through defacing, deleting or modifying web pages/logic and/or altering/downloading databases. A nightmare from the point of view of shared hosting users.</p>
<p>Depending on how they gain entry a hacker (or their automated executing code) may search through all of the files they can access, through ftp or server-side scripts, built to identify possible files to manipulate. They may download copies of things (e.g. databases!) but will likely set about cycling through all available webpage files and doing things such as:</p>
<ul>
<li>Inserting code within the page (iframes to bad websites, links to their websites – designed to improve their search engine rankings, redirect code which just shuttles people on to their sites)</li>
<li>Replacing the file with a predesigned page (kudos fronts ‘this website was hacked by&#8230;’)</li>
<li>Replacing common server-side functions and variables (e.g. replacing all the send values on email scripts to forward emails to an account other than the owners)</li>
</ul>
<p>If you have a single site, or 10 or something the chances are you personally check them all every now and again, getting a little facetime at least once a week say. In this case your opportunity for hosting a hacked site is 7 days, not awful, not great – Google and browsers will start blocking your site if the hacker has inserted any code going to malware or similar, and otherwise may start to drop you down the rankings if your site now displays a ‘hacked by..’ page instead of your wholesome site.</p>
<p>In the case of a lot more sites on the host this can mean no detection for a longer time, if no system is in place, often first recognised through a drop in statistics/earnings (more likely earnings as in the case of iframed malware a change in the number of hits can be not hugely obvious.)</p>
<p>To add confusion to the mix it’s not unknown for hackers to mask their changes to you, it’s very easy with .htaccess files and php/asp headers (for example) to show content relative to its viewer. E.g. the hacker could shuttle people coming in from Google to a hacked page but people that access the site directly (typing it in) get shown the normal site. Furthermore they may not hit every site you have, perhaps a handful of random choices, some folders not others, a smokescreen like attack which could change each time.</p>
<p>Chances are once you get all your pages fixed and get around to looking at where the security hole is that when you recheck your sites they would have been hit again. This tells you two things, 1. The hacker is relentless (or more likely has a relentless automated program, exploiting 24/7) and 2. You have not plugged the security hole. Or if you are really unlucky you are being hacker tag teamed.</p>
<p>So anyway, detection. How do you go about knowing the integrity of your web portfolio? What if it spans 10 shared hosting accounts or 4 servers? Well likely if you own your own server you have spent the time/cash in locking everything down, what I suggest here would be useful to you guys but you may already have a better solution in place.</p>
<p>Currently there are a bunch of services which will do this for you, of which I have tried zero. “Monitoring” services are available worldwide ranging in prices drastically, for me though even the high end services didn’t offer a full set of features and were mostly hugely overpriced but for the top 50% of the portfolio, not effective for me.</p>
<p>The good things about using external monitoring services are obvious but none seemed to be able to offer realistic change monitoring (e.g. WordPress blogs may change content between &lt;div id=”whatever”&gt; and &lt;/div&gt; every hour but the rest of the page should stay almost the same.) It is important they see the addition of malicious code to good pages and not throw constant false alarms. For ‘this website was hacked by..’ pages though they probably do a good job (as well as malware detection.) Uptime monitoring is also common as part of the packages, useful without doubt.</p>
<p>I suggest another way though of monitoring an established portfolio, that is the way I have resolved my recent hacker attacks, a realistic option for shared host/anywhere-in-the-world-with-a-laptop client based use. Ultimately an extension of a few older applications I wrote to manage a growing portfolio, weathered by several hacks across accounts within the past 6 months – Hard checks of every important file.</p>
<div align="center"><img loading="lazy" decoding="async" src="https://blog.woodylabs.com/wp-content/uploads/2011/05/website-integrity.jpg" alt="" title="website-integrity" width="600" height="450" class="aligncenter size-full wp-image-619" srcset="https://blog.woodylabs.com/wp-content/uploads/2011/05/website-integrity.jpg 600w, https://blog.woodylabs.com/wp-content/uploads/2011/05/website-integrity-450x337.jpg 450w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div align="center" style="font-size:16px;font-weight:700;margin:30px">“The best way to check the integrity of your shared hosting account is to physically check the integrity of your shared hosting account.”</div>
<p>At first I wrote my system to simply allow me to take stock of the sites and CMS’s I have in place, to work out possible security holes from behind the scenes – but it turns out it works surprisingly well in identifying breaches. By checking your actual live file structure (.htaccess, index.php, default.aspx, index.html etc.) against a known correct file structure snapshot, you take the whole http part of the checking out of the loop, effectively making it a higher level integrity check than external services can ever offer.</p>
<p>By making Checksums of every critical file (often hackers just hit index.php, index.html, default.aspx etc.) within a given ftp/file structure and then automatically rechecking at scheduled points it becomes easy to minimise your window for financial fallout from hackers. This may seem like a time/bandwidth/processor consuming task but in actuality 100 websites with WordPress installed could be checked in a few Mb of download – in terms of modern data use that’s a few browses of a facebook photo gallery. What’s more it can run in the background, only prompting you on changes to files, as frequently as you want.</p>
<p>The side benefit of producing complete hosting account checksum snapshots is you are also able to accurately backup a working copy of your hosting account. Built into the checking process this means that you can then correct hackers’ malicious changes with a click of a button.</p>
<p>This of course does not take into account more hard-file based websites, database changes or regularly altered sites. I recommend automated screenshots to cover these or the combination of external monitoring services and integrity checking.</p>
<p>I have written an alpha release of this system (named Website Integrity Checker for now) and will gladly distribute/discuss it if you drop me a comment below. A beta copy might make its way out sometime.</p><p>The post <a href="https://blog.woodylabs.com/2011/05/hackers-wrecking-your-shared-host-account-check-your-website-portfolio-integrity/">Hackers wrecking your shared host account? Check your Website Portfolio Integrity</a> first appeared on <a href="https://blog.woodylabs.com">Woody Hayday | Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.woodylabs.com/2011/05/hackers-wrecking-your-shared-host-account-check-your-website-portfolio-integrity/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
	</channel>
</rss>
