SerferJS, упс, пардон, я, конечно же, ошибся с предыдущим кодом =) - там будет постоянно обновляться. Да, надо поставить куки. Алгоритм, примерно, такой: в onload проверяете, если нет куки, то ставим куку и рефрешим, если же кука есть - удаляем (процедура аналогична установки куки, за исключением того, что надо задать просроченный период хранения (expires), например - 
expires=Thu, 01-Jan-1970 00:00:01 GMT) и не рефрешим.
<body
  onload="
    if (кукаЕсть) {
      удаляемКуку();
      return true;
    }
    ставимКуку();
    делаемРелоад();
  "
>
P.S.: по поводу Вашего "сложного php-кода", я думаю, Вам стоит подумать о переорганизации логики скрипта, а не о уловках типа перезагрузки страницы.