Другой эффективный способ - не отправлять заголовки напрямую в цикле. что не является правильным (я не мог найти в руководстве php.net, но я помню, что это обсуждалось ранее в phpusenet).
это может действовать неожиданно в разных версиях PHP. & разные версии Apache установок.
php as cgi тоже создаст проблемы.
Вы можете назначить его для возврата в виде строки, а затем отправить заголовок позже ...
function update($coords) {
//update the database
if(statement to understand update is ok){
return 'Location:http://localhost/thisfile.php';
} else {
return false;
}
}
if($updateresult=update($cords)!=false){ header($updateresult); }
но на вашем месте я бы попытался работать ob_start () ob_get_contents () ob_end ()
потому что это отличный способ контролировать то, что будет отправлено в браузер. нормальные mimetypes или заголовки ... что угодно. это лучший способ при работе с заголовками и выводом html одновременно.
ob_start(); /* output will be captured now */
echo time(); /* echo test */
?>
print something more...
<?php /* tag test */
/* do some stuff here that makes output. */
$content=ob_get_contents();
ob_end_clean();
/* now everything as output with echo, print or phptags.
are now stored into $content variable
then you can echo it to browser later
*/
echo "This text will be printed before the previous code";
echo $content;