Use glCheckFramebufferStatus to check if the framebuffer is complete. Also I think the framebuffer's texture types should be the same size, GL_RGB and GL_RGBA is not good. I'm not sure if that's needed in new OpenGL versions though. Try to get it working with positions and depth first?
And what is this:
//clear error buffer glGetError();
Really, check if there's some errors first, it helps a lot. Use gDebugger or some other OpenGL debugging software to check those errors, you can even see what kind of stuff your textures contain.