So you have the player's position and the camera's position. You can subtract those two, and you have a vector (a direction) from the player to the camera. Since you want to have the player walk on the floor (I am assuming) you will have to project that vector onto the ground. Since you ground is a flat plane, this is relatively easy (you can just zero out the y value). Even if the floor is sloped, as long as it is generally on the horizon line, you can assume it travels on the X-Z plane, we can normalize the direction vector so not to distort it. Then you simply take this vector, normalize it (so it will be length 1.0) and then multiply by the speed of movement. This will get you forward and back movement.
For left and right, it is fairly similar. But in this case you will take the right vector of the camera (rather than the vector between the player and the camera). As long as the camera is mostly facing level, this will work (it wouldn't work in a 6DOF space game like Descent). Then you do the same calculation, project the right vector onto the floor, normalize it, and then multiply but the player speed. This is right, if you press the left button, then just multiply by -1.0.