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