Avatar billede nintoman Nybegynder
18. august 2003 - 22:24 Der 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>

Hvad gør jeg galt??!?!
Avatar billede ahv Nybegynder
18. august 2003 - 22:27 #1
du må ikke have noget html kode før en header.
Avatar billede ahv Nybegynder
18. august 2003 - 22:28 #2
Desuden burde du også kunne gøre det med ren html ->

<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
Avatar billede ztyxx Nybegynder
18. august 2003 - 22:29 #3
du kan omslutte din kode med
ob_start()
og
ob_end_flush()

så får du ikke header-fejl
Avatar billede 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>
Avatar billede fangel Nybegynder
18. august 2003 - 22:32 #5
Avatar billede nintoman Nybegynder
18. august 2003 - 22:41 #6
Tusinde tak. Det hjalp:)
Avatar billede Slettet bruger
18. august 2003 - 22:46 #7
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.
Avatar billede ztyxx Nybegynder
18. august 2003 - 22:48 #8
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester