<?php // referrerCapture.php
  $oldestReferrer = getsetOldestReferrer();

// call this at the top of your script before you send any output, like this:
// $oldestReferrer = getsetOldestReferrer();
function getsetOldestReferrer() {
  $fieldname = 'referrer';

  // get referer code
  if     (isset($_COOKIE[$fieldname]))  { $oldestReferrer = $_COOKIE[$fieldname]; }
  elseif (isset($_REQUEST[$fieldname])) { $oldestReferrer = $_REQUEST[$fieldname]; }
  else                                  { $oldestReferrer = '';  }

  // save it to a cookie (if value changed)
  if ($oldestReferrer && $oldestReferrer != @$_COOKIE[$fieldname]) {
    $cookieExpires = strtotime("+10 years");
    $cookiePath    = '/';
    setcookie($fieldname, $oldestReferrer, $cookieExpires, $cookiePath);
  }

  //
  return $oldestReferrer;
}

?>

<form method="get" action="?">

Oldest Referer: <?php echo htmlspecialchars($oldestReferrer); ?> (This would be hidden on form)<br/>
<input type="hidden" name="oldestReferrer" value="<?php echo htmlspecialchars($oldestReferrer); ?>" />

Your Name: <input type="text" name="yourname" value="yourname" /><br/>
<input type="submit" name="submitForm" value=" Submit Form " />
</form>

Examples: <br/>
<a href="?referrer=<?php echo urlencode('ABC Corp'); ?>">Pass in a referrer</a><br/>
<a href="?">Load page without any query string (loads last referrer from cookie)</a><br/>
<a href="?referrer=<?php echo urlencode('Widgets, Inc.'); ?>">Pass in a different referrer</a><br/>

<xmp>$_REQUEST = <?php print_r($_REQUEST); ?></xmp>