Jo. Putten Orks Lösung ist standard und wird so auch in professionellen Scripten benutzt. So auch hier im Forum oder bei den newskommentaren oder Umfrageabstimmung auf Squarenet.

Das es bei dir nicht funktioniert, July, könnte daran liegen das du vor der header()-Funktion bereits irgendwas an den Browser ausgibst.
Es darf vor Headerfunktionen nichts an einen Browser ausgegeben werden. Weder leerzeichen noch einen Zeilenumbruch.
Das Script muss mit <?php beginnen.

Ansonsten wäre noch denkbar das die $_SERVER-Variablen gesperrt sind. Ist zwar seeeehr paranoid, aber man weiß ja nie...
Notfalls kann man auch eine relative Adresse da angeben, wäre dann aber nicht HTTP 1.0 kompatibel AFAIR.

BTW: Diese Funktion header('Location: '.$_SERVER['REQUEST_URI']);
Ist eine Weiterleitung. Die Weiterleitung tritt auf Serverebene ein.
Sendet der Client den Request, schickt der Server als Antwort nicht den HTML-Output sondern ledigich die Aufforderung zur Weiterleitung auf, in diesem Falle $_SERVER['REQUEST_URI'], welches der Adresse der angeforderten Seite entspricht. Also quasi ein Reload ohne das $_POST und $_GET-Varialen neu übergeben werden.

Eine sehr schöne und saubere Methode um Neueinträge zu verhindern.