The collision checking that you've got seems to work perfectly. But the problem is how easy it is to accidently touch the wrong block and die. In most of the good platformer games, a lot of special code is added to avoid such things. Here is a short video that covers some of the most common techniques that can make the platforming controls a lot more fun:
The GDC talk mentioned in that video is also quite good detailed.