Tag: header

header的用法

没有评论

2010 年 10 月 12 日 at 下午 1:22分类:PHP | WEB开发

原文地址:http://hi.baidu.com/zhj2011/blog/item/14da6e1a356065d8ac6e7503.html

标头 (header) 是服务器以 HTTP 协义传 HTML 资料到浏览器前所送出的字串,在标头
  与 HTML 文件之间尚需空一行分隔。有关 HTTP 的详细说明,可以参 RFC 2068 官方文件
  (http://www.w3.org/Protocols/rfc2068/rfc2068)。在 PHP 中送回 HTML 资料前,需先
  传完所有的标头。
  
  注意: 传统的标头一定包含下面三种标头之一,并只能出现一次。
  
  Content-Type: xxxx/yyyy
  Location: xxxx:yyyy/zzzz
  Status: nnn xxxxxx
  
  在新的多型标头规格 (Multipart MIME) 方可以出现二次以上。
  
  使用范例
  
  范例一: 本例使浏览器重定向到 PHP 的官方网站。
    Header(“Location: http://www.php.net“;);
  exit;
  >?
  
  范例二: 要使用者每次都能得到最新的资料,而不是 Proxy 或 cache 中的资料,可以使用下列的标头
  header(“Expires: Mon, 26 Jul 1997 05:00:00 GMT”);
  header(“Last-Modified: ” . gmdate(“D, d M Y H:i:s”) . “GMT”);
  header(“Cache-Control: no-cache, must-revalidate”);
  header(“Pragma: no-cache”);
  >?
  
  范例三: 让使用者的浏览器出现找不到档案的信息。
    header(“Status: 404 Not Found”);
  >?
  
  范例四:让使用者下载档案。
  
  header(“Content-type: application/x-gzip”);
  header(“Content-Disposition: attachment; filename=文件名\”);
  header(“Content-Description: PHP3 Generated Data”);
  ?>

// fix 404 pages:
header(‘HTTP/1.1 200 OK’);

// set 404 header:
header(‘HTTP/1.1 404 Not Found’);

// set Moved Permanently header (good for redrictions)
// use with location header
header(‘HTTP/1.1 301 Moved Permanently’);

// redirect to a new location:
header(‘Location: http://www.example.org/’);

// redrict with delay:
header(‘Refresh: 10; url=http://www.example.org/’);
print ‘You will be redirected in 10 seconds’;

// you could also use the HTML syntax:// <meta http-equiv=”refresh” content=”10;http://www.example.org/ />

// override X-Powered-By: PHP:
header(‘X-Powered-By: PHP/4.4.0′);
header(‘X-Powered-By: Brain/0.6b’);

// content language (en = English)
header(‘Content-language: en’);

// last modified (good for caching)
$time = time() – 60; // or filemtime($fn), etc
header(‘Last-Modified: ‘.gmdate(‘D, d M Y H:i:s’, $time).’ GMT’);

// header for telling the browser that the content
// did not get changed
header(‘HTTP/1.1 304 Not Modified’);

// set content length (good for caching):
header(‘Content-Length: 1234′);

// Headers for an download:
header(‘Content-Type: application/octet-stream’);
header(‘Content-Disposition: attachment; filename=”example.zip”‘);
header(‘Content-Transfer-Encoding: binary’);

// load the file to send:readfile(‘example.zip’);
// Disable caching of the current document:
header(‘Cache-Control: no-cache, no-store, max-age=0, must-revalidate’);
header(‘Expires: Mon, 26 Jul 1997 05:00:00 GMT’);

// Date in the pastheader(‘Pragma: no-cache’);
// set content type:
header(‘Content-Type: text/html; charset=iso-8859-1′);
header(‘Content-Type: text/html; charset=utf-8′);
header(‘Content-Type: text/plain’);

// plain text file
header(‘Content-Type: image/jpeg’);

// JPG picture
header(‘Content-Type: application/zip’);

// ZIP file
header(‘Content-Type: application/pdf’);

// PDF file
header(‘Content-Type: audio/mpeg’);

// Audio MPEG (MP3,…) file
header(‘Content-Type: application/x-shockwave-flash’);

// Flash animation// show sign in box
header(‘HTTP/1.1 401 Unauthorized’);
header(‘WWW-Authenticate: Basic realm=”Top Secret”‘);

print ‘Text that will be displayed if the user hits cancel or ‘;
print ‘enters wrong login data’;?>[/codes]

header(“Cache-control: private”)//修复后退没有提交数据的问题

没有评论

2010 年 10 月 09 日 at 下午 2:23分类:PHP

header(“Cache-control: private”)
2009-06-24 12:06
我们在点击浏览器的后退按钮后,在先前我们录入的所有字段的信息都被清空了。打开php代码如下:
// start or continue the session
session_start();
header(‘Cache-control: private’);

是因为在表单提交页面中使用了 session_start 函数。该函数会强制当前页面不被缓存。
解决办法为:在你的 Session_start 函数后加入 header(“Cache-control: private”); 注意在本行之前你的PHP程序不能有任何输出。