Actually I need to to correct that. I've now tried this as my hidden form field:
<input type="hidden" name="PromoCode" id="PromoCode" value="$_SESSION["PromoCode"]" />
And this on my checkout page in my attempt to load the session promo code:
<?php
if (!session_id()) session_start();
if("" == "") {
$_SESSION["PromoCode"] = "".((isset($_POST["PromoCode"]))?$_POST["PromoCode"]:"") ."";
}
?>
As I thought that was slightly more intelligent - still doesn't work though!