[OpenGL 3.3+]Phong shading and transformations

Hello, I would like to find a solution for the problem which is haunting me lately.

I am starting to use OpenGL3.3+ and shaders(I've been using immediate mode for 2D rendering most of the time, and Irrlicht 3D rendering engine.), so I am practically new at those. After some time fiddling with the new syntax and shaders, I've finally came to the lighting stage and tried to implement phong lighting, everything seemed okay at first, but then I realised it's screwed. After a day and a half of trying to fix it, intense googling for the same problem, I couldn't find a solution. My problem is simple:

Light is orientating with camera even if it's in a static place(like 0,0,100) so if it's lighting the back of the model, the front is lit, and even more strangely, when I go away from the dark side, it lights up..

Here's a screenshot:
(Light is in front of the model, while the back is being lit brightly as I am far away.)

Light is orientating with camera even if it's in a static place(like 0,0,100) so if it's lighting the back of the model, the front is lit, and even more strangely, when I go away from the dark side, it lights up..

You're doing your lighting in OpenGL EYE-SPACE in the shader (logical choice), which means the "lightPosition" you're passing into your shader better be in EYE-SPACE. (0,0,100) in EYE-SPACE would be located in the direction of the eye (down the +Z axis). So with that (barring distance attenuation, light cones, etc. which you're not simulating yet) you should be illuminating the side of the object you can see from the eyepoint.

If you did in-fact want a "static place" in say WORLD-SPACE (such as WORLD-SPACE (0,0,100)), then you'd want to take ((0,0,100) and transform it by your VIEWING transform (to get it into EYE-SPACE) before assigning it the "lightPosition" uniform.