after loading the shader s
I think that's your problem right there. Uniform values are individual per shader, so you have to specify them for each shader program. The way you formulated your question hints, that you're setting the uniform value only once, expecting it to be shared among all shaders.
Also uniform brown color indicates, that there's no proper texture coordinate applied. How does your vertex and fragment shader code look like, and how do you supply texture coordinates?