Using a good foundation primer will stop your foundation from melting off your skin throughout the day. If it is a hot day or you are on holidays in the heat, it is especially important to wear a foundation primer. Apply the primer to your skin after moisturising your face and let it absorb for two minutes before putting on your foundation.
Powder absorbs the oil from your skin that causes your foundation to disappear. Carefully sweep some powder with a fluffy brush over areas that get oily during the day. Try to remember to always carry powder in your handbag.
It is common for eyeliner to wear off after a few hours. The answer to this is gel eyeliner which is a lot less likely to smudge or rub off.