4

私のサイトのページにフォームがあります。送信フォームからエコーするテーブルがありますが、フォームに入力するとキャッシュされたバージョンが表示され、更新されないため、キャッシュしないでください。メタタグではなくページをキャッシュしない良い方法はありますか?

私が今使っているコードは

       <?php
       $query='select * from article order by `article`.`time` DESC LIMIT 10';
       $result=mysql_query($query); 
       echo '<table class="mytable" width="1000px" border="0">';
       while($row = mysql_fetch_array($result))
       {
    echo "<td><a href='".$row['url']."'>".$row['title']."</a> - ".$row['name']."</td><td>".$row['class']."</td></tr>";
}
echo '<table>';
       ?>
4

4 に答える 4

2
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>

http://php.net/manual/en/function.header.phpを参照してください

于 2012-09-22T04:23:22.210 に答える
1

より複雑ですが、「キャッシュされていない」データを にiframe配置し、プライマリ ドキュメント内に iframe を埋め込むことができます。

ただし、メイン ページが非常に大きい場合を除き、ページの一部をキャッシュするだけの価値があるとは思えません。通常cssjavascriptimagesがすべて外部にある場合、それらは通常どおりキャッシュされ、コードの大部分を構成する必要があります。

于 2012-09-22T04:22:31.697 に答える
0

これらの php ヘッダーは、php 出力のクライアント側のキャッシュを防ぎます。

<?php
//no  cache headers 
header("Expires: Mon, 26 Jul 2012 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
于 2012-09-22T04:22:01.050 に答える
0

使用する:

header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

obそして、バッファリングを使用して残りをキャッシュします。

于 2012-09-22T04:33:11.747 に答える