18. august 2003 - 22:24Der er
7 kommentarer og 1 løsning
Ingen cache - tak!
Jeg har prøvet at få min hjemmeside til at undgå at cache på mange måder. Jeg tror, at den kode jeg har nu virker, men den returnerer alligevel denne fejl:
Warning: Cannot modify header information - headers already sent by (output started at /web/www/frac/users/pokecenter/genbrug/top.php:4) in /web/www/frac/users/pokecenter/genbrug/top.php on line 5
Warning: Cannot modify header information - headers already sent by (output started at /web/www/frac/users/pokecenter/genbrug/top.php:4) in /web/www/frac/users/pokecenter/genbrug/top.php on line 6
Warning: Cannot modify header information - headers already sent by (output started at /web/www/frac/users/pokecenter/genbrug/top.php:4) in /web/www/frac/users/pokecenter/genbrug/top.php on line 7
Warning: Cannot modify header information - headers already sent by (output started at /web/www/frac/users/pokecenter/genbrug/top.php:4) in /web/www/frac/users/pokecenter/genbrug/top.php on line 8
... Her er min header med anti-cache koderne:
<head> <? header("Expires Fri, 14 Mar 2000 12:00:00 GTM");//udløbsdatoen sat til engang i fortiden header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");//nu er den altid opdateret... header("Cache-Control: no-cache, must-revalidate");//anti-cache for HTTP ver. 1.1 header("Pragma: no-cache");//anti-cache for HTTP ver. 1.2 ?> <title>|Pokecenter.dk|</title> <link rel="stylesheet" type="text/css" href="/layout/style.css"> </head>
du kan omslutte din kode med ob_start() og ob_end_flush()
så får du ikke header-fejl
Synes godt om
Slettet bruger
18. august 2003 - 22:29#4
Der noget du har misforstået. De headers du sender med header er rene HTTP headers. Det har for dit vedkommende ikke noget at gøre med, hvad der står i <head> delen af et HTML dokument.
Flyt derfor <head> til under din PHP kode.
Der må ikke være nogle blanktegn eller andet output til klienten, før du sender den første header(...). Din PHP kode skal altså stå aller øverst på siden:
<? header("Expires Fri, 14 Mar 2000 12:00:00 GTM");//udløbsdatoen sat til engang i fortiden header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");//nu er den altid opdateret... header("Cache-Control: no-cache, must-revalidate");//anti-cache for HTTP ver. 1.1 header("Pragma: no-cache");//anti-cache for HTTP ver. 1.2 ?> <body> <head> <title>|Pokecenter.dk|</title> <link rel="stylesheet" type="text/css" href="/layout/style.css"> </head>
ztyxx: Når man nævner den nød-løsning, bør man også skrive at den har nævneværdige performance implikationer. Eftersom PHP "gemmer" hele output fra scriptet i hukommelsen, før det sendes til klienten.
Det er sjældent at anvendelse af output buffering i virkeligheden er nødvendig. Ofte er det bedre at tænke sit script om. Når det er nødvendigt er det tit i forbindelse med funktioner som ikke retunerer med udskriver direkte til std out.
mercur8> du har helt ret, men i enkelte tilfælde er det løsningen, og hvis man ikke køre et kæmpe-script, går det ikke nævneværdugt ud over performance´en
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.