Whenever I need to prevent caching I always tack on a varaible called $ig(idiot guard) to any link or form that goes to the page. I usualyy set the value to equal unix timestamp like
$ig = time();
Then at the top of the page I want to prevent hte caching on I check for $ig if it is not present I use meta tag refresh to reload the page with the $ig variable again tacked on to the end of the url so that the page will reload and the $ig variable will ensure that the freshest copy of the page is lao9ded from the server.