Written by

Well I have re-developed from its incredably quick and hacky code to something alot more professional.

For those that don’t already know, I was contacted by a member of the giffgaff community to help out with a new project. The idea being that will be URL shortener for the giffgaff affiliate link, which is does really well but the community required a ‘feature’ of being able to track the number of clicks.

I created a simple database that logs the username, number of clicks and month/year. I was then asked to expand this to include the microgaff service ( so the database grew.

Within a a few weeks gg-sim has grew and now has 45 users. In which prompted another new feature; The Community Resources.

This is a place where all the content creators in the giffgaff community can get thir creations hosted for download instead of sites like rapidshare and mediahost etc etc. It also means that anyone looking for content can visit the download section and find stuff to download much easier than trawling through the forums. The community resources is still developing but it utilises a customised version of ldir and some of the customisations made it into the latest release.

The next stage for the community resources is the tracking of the number of downloads a particular file gets which will be developed.

So any members of giffgaff why not try! And if you’re not part of giffgaff then order a sim today!

Last Week

Written by

Here’s a sneak look into my boring life.

What have I been doing this last week?

  • Uni – Network Management Assignment
  • Uni – Java Assignment
  • Web – Create and Develop gg-sim, a new giffgaff community website.
  • Friends – Help with their Java
  • Friends – Burn off a few discs
  • Myself – Start a re-installation of windows on my pc
  • Myself – Apply for a PCDL
  • MySelf – apply for a few jobs
  • giffgaff – Submit “How to giffgaff a blackberry” guide & giffgaff

If you’re a member of giffgaff then this site will be of particular use and if you’re not a member, then why not? Order a SIM now! (Order a giffgaff SIM with a bonus £5 credit!)

This site (gg-sim) is a cool idea conceived by the community member samlowe which I contacted about helping develop the idea more. It is a shorter URL for all giffgaff affiliate links! A whole 17 characters shorter, well yeah, I know its not a lot but it’s a link which is descriptive enough, pretty enough to not confuse people and also memorable.

I join and developed basic click tracking stats through the aid of PHP and MySQL, which in turn allowed me to develop a useful and simple stats site. The stats site, checks to see if your link is available, gives you your gg-sim personal link and also a generated QR-Code to use on posters and such.

The site not only tracks standard referral SIMs, if the user is signed up to the scheme, it will also shorten your MicroSIM link and generate a QR-Code for that (although there are less checks on this system).

I am aiming to develop it further throughout this week, with a community resources page in the works, a place for members of the giffgaff community to host their files.

giffgaff is awesome, and really cheap, if you order your SIM via the link on my site, you will gain an extra £5 when you top-up!
Did I mention they are cheap?
They have unlimited Internet and Texts and 250mins all for £10/month (one month type contract) but it’s also Pay as you go with competitive rates! Oh and free 0800 numbers!

Uni Assignments

I now only have 2 left of the semester! Woo hoo but I also have 2 practial tests on Cisco CCNA type problems.

ldir bug 1.7.3-1

Written by

I have just found a bug in ldir (Bug #1), which unfortunately trails all the way to 1.6.5.

The bug doesn’t effect PHP5 installations but it effects all PHP4 installations.

I unknowingly used the function strripos() and stripos() which were only introduced in PHP5. The bug got past because I was using a personally modded PHP4 install.

I will be patching the current code to include a check for the functions, like I did with scandir() function. I will also be issuing a patch file which you will have to require_once() before ldir which will contain the patch for any previous version.

Sorry for any inconvenience and this bug fix is top priority.


Bug fix (1.7.3-1 0.0.3) is online and ldir is now fixed.

Changelog entry 1.7.3-1 logs this bug, found in version 1.7.3 bug 1.

And FYI 0.0.3 is version 0.0.3 of the fix, yes it took 3 attempts!

ldir 1.7.2

Written by

I was bored today and instead of doing assignment work, I decided to look into some report bugs in ldir; this update has added a fair bit of code.

I have now improved the extremely simplistic anti-injection checks to be a bit more thorough, as it was actually stopping access to any .folders which meant it was stopping the ability to traverse up directories that you shouldn’t be able to but it was also restricting access to legitimate folders.

Initially I was going to just edit the way it handled folders but after I did this, you could still inject so I changed the improved code. The new folder handling means that the URL doesn’t have to have an prepending (is this a real word, if not is would be! I’m just not sure as firefox’s spell check goes wild with it) / so it looks much nicer.

The new improved anti-injection also allowed for some minor changes so people can display double dot files and folders i.e. ..folder/ which would be odd but highly possible. Inadvertently, it also allows ./ to be used in the variable f GET but this should be fine.

I’m not sure if it was my permissions or a bug in the PHP filesize() function as when ldir was inside a doubledot folder, it was giving an e_Warning that it couldn’t stat the file size, so due to this, I have suppressed an warning from it. I will follow this up when I get time but I think that is is a filesize() bug.

Anyway, visit the ldir page for the latest code and changelog.

ldir roadmap

Written by

Just because I like a plan of attack, here’s a roadmap of where ldir should be and develop by what versions.

  • 1.6.5 – Better file extension handling
  • 1.6.7 – Hide dot files by default or specific hidden file name i.e. .?
  • 1.6.5 – Proposed alteration of the version checking code to make it more versatile.
  • 1.7.0 – Allow _GET parameters to be passed to the links generated
  • 1.8.0 – Pass-Thru download action, to allow access to non web dirs.

I can’t guarantee any dates for these versions but this is how it should play unless there are any bug fixes and editions to screw up the major-minor version number.

A little about my version numbering…

Version: 1.2.3

  1. The Major version, this only changes is a complete change to the method/function
  2. Only changed if the method of calling up the function changes or the output method. i.e. a new parameter added etc
  3. This is changed when there is a bug fix and minor developments which doesn’t effect any outside code.

Hope it helps a little.


Edit: Version 1.6.7 was rolled out a few hours after this post.