php经典实例-笔记3-web与表单
来源:互联网 发布:数据库索引的原理 编辑:程序博客网 时间:2024/05/22 11:17
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、
- php经典实例-笔记3-web与表单
- PHP经典实例读书笔记--表单
- php经典实例-笔记3-类与函数篇
- php经典实例-笔记1
- php经典实例-笔记2
- PHP经典实例读书笔记--Web基础
- php经典实例-笔记4-数据库
- php经典实例-笔记6-xml
- PHP经典实例学习笔记--数组
- PHP 学习笔记(二):表单:表单处理,表单验证,表单实例
- Java Web笔记:Servlet与表单
- PHP学习笔记3-表单
- H5表单与PHP交互学习笔记
- PHP表单使用实例
- jquery表单验证实例【经典】
- PHP简易表单验证与简易留言板实例
- php经典实例-笔记5-国际化和本地化
- 《PHP经典实例学习》之变量学习笔记
- WebKit介绍及总结(三)
- python libvirt 创建 iscsi 存储池、及存储池与iscsi 概念对应关系
- 安装beautifulsoup
- 计算机算法--动态规划计算编辑距离
- 用IP地址反查主机名
- php经典实例-笔记3-web与表单
- The processing instruction target matching "[xX][mM][lL]" is not allowed.
- ExtJs Js中常用的格式化及时间处理函数
- vc模拟鼠标单击
- URAL 1447. Portkey Network
- linux shell数据重定向(输入重定向与输出重定向)详细分析
- __attribute__机制
- 多线程--Python下载(支持断点续传) & Java多线程计算矩阵乘法
- 工厂模式