This is close to what I have done for testing for users/browsers acceptance of cookies. Instead of using a test cookie though, directly set the necessary cookie and pass a query string in the redirect. I have run into situations where a user may accept one cookie but not the next!
Modifying dvergin's pseudo-code:
if $cookie = $cgi->cookie("CookieName") check to see if it meets our standards do business else if $cgi->param("TestingCookie") # no need to test value #we tried to set a cookie and failed bailout # or notify user of cookie failure and continue set the cookie set a http location: header line that includes: the url by which we arrived here + CookieName=value in the query string + a query string TestingCookie=1 clean up and exit end