come giā suggerito, i valori li puoi mettere in una sessione, poi per il refresh unico, non so se esite un modo specifico per farlo una sola volta, intanto risolverei in questo modo.
In head controllo se esiste il valore per la variabile $refresh che passo al primo refresh che eseguo appunto solo se la variabile ancora non ha un valore, prova a vedere se funziona.
Codice PHP:
if ( empty($_GET['refresh']) ) {
echo 
"
<meta http-equiv=\"refresh\" content=\"secondi_refresh; url=stesso_file.php?refresh=off\">"
;