Caught Out By CAPTCHA
Imagettftext() Returns Huge Negative Values

Anyone who's ever drowned in spam sent through a form on their website will appreciate how helpful the CAPTCHA puzzle can be in combatting this annoying problem.

Posted 25/08/13

Read more »

Register Globals - Just Don't Do It
Turn on PHP's register_globals? Jog on, son.

A site I do some occasional maintenance on went off line last week. Upon futher investigation, there was some rather nasty looking PHP code lurking in various files, including the database connector. It was easy to spot because it was causing a parse error which was all over the error log like a rash.

Posted 20/01/13

Read more »

Spam Dunk DNSRBL Blues - Everyone's a Spammer
Debugging DNSRBL: setting your DNS server to always return a result is an epic FAIL

I sent one of my clients an email this morning, and was rather surprised to find that it bounced back. Since I'm responsible for maintaining their email system, it was my problem, not theirs.

Posted 14/01/13

Read more »

jQuery Tools and Ajax
Fun and games using jQuerytools tooltip on AJAX loaded content

I've been using the tooltip jQuery plugin from jQuerytools for a while now, and it's generally awesome. However I was having some fun and games getting the tooltip to play nice on content loaded via AJAX.

Posted 12/01/13

Read more »

Concrete5 Bank Transfer eCommerce Payment Method
Want to offer bank transfers as a means of paying for goods online? There's no way to do this in Concrete5 eCommerce, unless you hack the default gateway.

The problem with hacking the default gateway, is that an update to Concrete5 eCommerce will overwrite your changes. Bank details are embedded in the code, which means that if the customer changes their account, I have to update the code again. All of this can be avoided by using a modified version of the gateway, which can be configured in the dashboard with the right details.

Posted 10/01/13

Read more »