Using
sleep(30);
header("location:yourfile.php");
would be very stupid. First, you can't print anything because headers are not completely sent, and second, the user will see nothing during 30 sec... it will surely go somewhere else.
The best way is to user three things : META-Refresh Tag, JavaScript, and a link. Why a link ? Simply because you can disable the META-Refresh tag and also disable JavaScript. If you do so, nothing will happen. That's why you have to put a link.