I think the problem is located in the fact that the returnurl parameter is supposed to contain multiple arguments.
header("location:lah.php?action=vote&returnurl=pollarchive.php?stage=2&poll_id=3");
In lah.php, the following would be set;
action = 'vote'
returnurl = 'pollarchive.php?stage=2'
poll_id = 3
Instead of;
action = 'vote'
returnurl = 'pollarchive.php?stage=2&poll_id=3'
So, what you need to do, is an urlencode;
$returnurl = "pollarchive.php?stage=$stage&poll_id=$pollid"; // or whatever
$returnurl = urlencode($returnurl);
header("Location: lah.php?action=vote&returnurl=$returnurl");
.. And you might need an urldecode() before sending the user on to $returnurl! Good luck.