1、设置cookie
setcookie():cookie是随着http头部一起发送过来的。
第三个参数:设置过期时间,时间戳形式。没有设置,cookie就会在浏览器关闭的时候自动过期。
第四个参数:路径。只有在被请求的页面路径以指定的字符串开头的情况下,cookie才会被发送回服务器。
第五个参数:域名。只有当被请求页面的主机名以指定的域名结尾时,cookie才会被发送回服务器。
第六个参数:安全标记。
遍历所有的cookie:
foreach($_COOKIE as $cookie_name=>$cookie_value){
echo $cookie_name.'='.$cookie_value;
}
2、重定向
header('Location:http://www.baidu.com');
exit();
重定向的url应该包含协议和主机名,而不应该只用路径名。调用exit()这个函数,是防止输出。
将用户重定向到的目标url可以通过get实现,不能通过post把用户重定向到取得的url上。
3、检测不同的浏览器
1) 第一种是:使用$_SERVER[HTTP_USER_AGENT]选项
此方法获取的是格式不规则的数据。具体浏览器型号需要自己分析才能获取。
2)使用get_brower()函数
使用这个函数,必须在php.ini文件里增加指向browscap.ini文件的配置,browscap.ini文件里面记录了所有已存在的浏览器的类型及信息。
browscap=xxx/php_browscap.ini
这样,get_brower()函数会检查环境变量,并将其与外部的浏览器能力文件进行比较。
4、建立url字符串:http_build_query()
通过自动编码来防止变量名或值中的特殊字符破坏构建url。
htmlentities():转换字符为html字符编码,防止字符标记被浏览器执行。
5、获取post请求的主体
php://input:从请求中获取原始的数据。
6、使用HTTP的基本或摘要认证
全局变量$_SERVER['PHP_AUTH_USER']和$_SERVER['PHP_AUTH_PW']包含着用户提供的用户名和密码。如果想拒绝页面的访问,可以发送一个WWW-Authenticate头部信息,并将认证区域标识为状态码为401的响应。
浏览器收到401头部信息后,会弹出要求输入用户名和密码的对话框,用户名和密码如果被服务器接受,是与WWW-Authenticate头部的区域关联的。
一个基本认证的例子:
function validate($user, $pwd){
if($user=='pan' && $pwd=='123'){
return true;
} else {
return false;
}
}
if(!validate($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])){
header('www-authenticate:basic realm=my website');
header('HTTP/1.0 401 unauthorized');
echo "you need to enter a valid username and password";
exit();
}
基本认证时,用户名和密码在网络中是以明码发送的,安全性不高。
摘要认证时,则不会将密码从浏览器发送到服务器,发送的只是密码的散列码。
7、把输出冲刷到浏览器
强制把信息发送到浏览器,使用flush()。
8、压缩web输出
支持自动解压缩的浏览器发送压缩后的内容,在php.ini中设置:
zlib.output_compression = on
zlib.output_compression_level = x
浏览器是通过Accept-Encoding头部信息告诉服务器它是否能够接受压缩的响应数据的。如果浏览器发送了Accept-Encoding:gzip或Accept-Encoding:deflate,而php开启了zlib扩展,那么zlib.output_compression配置指令会告诉php在将输出发送到浏览器之前,先以适当的算法对其进行压缩处理。而浏览器则会对接收到的数据先解压缩再显示。
zib.output_compression_level配置指令调整压缩的级别。
9、环境变量
设置:putenv(‘xxx=yyy')
读取:getenv() 或 $_ENV[]
10、