Posts by admin.

.htaccess redirects based on date and time

A useful trick for implementing maintenance windows and redirects without having to use a php or similar script is to check date and time in .htaccess files or use it to build a redirect url.

Date and time values in .htaccess come in the form %{TIME_XXXX} where XXXX is the type of date or time you want.

So if you want to redirect a generic url to one which contains today’s date, you might use:

RewriteRule ^posts/today$ /posts/%{TIME_YEAR}-%{TIME_MON}-%{TIME_DAY}

That would result in /posts/today being redirected to something like /posts/2015-08-27

If you wanted redirect a page after a date (and time) is password you could use something like the following, where if the date is passed 9am on 27th August 2015 the redirect will happen. We use a simple number comparison of turning the date into an integer and then comparing it.

RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR} >2015082709
RewriteRule ^$ /destination/url.html [R=301,L]

The following would only redirect until a specific time (10.22am on 27th August 2015)

RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} <201508271022
RewriteRule ^$ /destination/url.html [R=301,L]

The following would only redirect between two specific dates (20th July 2015 and 27th August 2015)

RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY} <20150828
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY} >20150719
RewriteRule ^$ /destination/url.html [R=301,L]

The options you have for %{TIME_XXXX} values are:

TIME_YEAR // current four-digit year
TIME_MON // current month
TIME_DAY // current day of month
TIME_HOUR // current hour (24 hour clock) of day
TIME_MIN // current minute of hour
TIME_SEC // current second of minute
TIME_WDAY // current week-day
TIME // a formatted string representing the date and time down to seconds. e.g. 20150827112234

MySQL roughly random string generation for updating rows

Ever wanted to inject hashes into existing rows of a MySQL database? The code below allows you to generate a different string for each row affected by the update and choose the random string’s length from 1 to 32 character.

I’m aware it’s not the most random of generators but for url hashes etc, it works well. Be sure to then check for duplicates, which are possible!

Change 20 to a length between 1 and 32.

Update the WHERE condition to suit your needs

UPDATE table_name
SET column_name = (
SELECT substring(MD5(RAND()), -20)
WHERE condition_column = 1;

Internet Banking and Webhooks Part 2

On the 1st May I wrote a quick article about how Internet Banking Drags it’s heals when it comes to new technology. See the first Internet Banking and Webhooks article.

To sidetrack for a second. When I post or update this blog, a twitter tweet is sent automatically to my twitter account to inform anyone who cares. Well just this morning ANZMoneyManager ‘followed me’ ( is that the right term? ). I can only assume it’s because of the previous post and me tweeting about it on there. They seem to be pretty pro-active when it comes to twitter and blog comments.

Continue Reading… »

How To Create A Fluid Facebook Publisher Interface

Facebook recently changed their publisher inface, again.

The publisher interface is what you see on all profile pages and on your home page. It is how you change your status, and can use it to publish link and photos too. The final option is to use one of you applications who offer a publisher.

Because the publisher is now used on the home and profile pages which have different widths, and Facebook have yet to document any explanation of how to make your publisher interface inline easily I spend a bit of time tinkering.

Continue Reading… »