#PHP5与MySQL5 WEB开发技术详解#核心应用与规范:

表单:

post数据随着header信息一起发送;

检查表单提交的来源:$_SERVER['HTTP_REFERER'];

import_request_variables();

extract();

$_REQUEST[''];//多页面之间传递数据;

避免表单重复提交(page180):

1.js;

2.cookie处理(用cookie记录提交状态);

3.session处理(将session值隐藏传递,进行比较);

4.跳转;

表单过期处理(page182):

1.使用header头设置缓存控制头cache-control;

2.使用session_cache_limiter:

session_cache_limiter('private',must-revalidate);//session_start之前;

session_cache_limiter('nocache');

session_cache_limiter('private');

session_cache_limiter('public');

session_start();

表单安全:

关闭register_globals;

xss攻击;

预防sql注入;

高级数据验证:ctype;filter扩展;input_get();路径检测;魔法引用magic_quotes_gpc效率低,设置为关闭;

加密技术:md5;shar1;mcrypt函数;des加密;cracklib库;

php国际化与本地化(mbstring,iconv);

php开发规范:代码结构;编码风格与样式;函数命名;

php面向对象开发

类映射 api reflextion:通过访问一个类和对象,获取该类的结构和内容;

魔术方法:__get();__set();__call();(存取或调用未经定义的成员方法和属性)

__sleep();__wakeup();(序列化与反序列化时候调用)

__toString();

__autoload();

会话管理:

cookie;

session:

sessionid,随着每一个页面送往浏览器,随下一次页面送往web服务器,可保存在数据库中;

sessionid分别保存在客户端和服务器;

可保存数组和对象;

采用双向对称加密:des,aes加密或者blowfish算法加密session来保障session安全;

session共享实现单点登陆:session_set_save_handle();将session保存在服务器中;或者通过zend core解决方案包分布session;

输入输出缓冲:

读取内容:ob_get_contens();输出回调;

压缩内容输出,提高用户浏览速度:ob_start('ob_gzhandler');

文件系统与字符流(数据队列):

相关函数(fopen;fsockopen,file_get_content);流封装器;取得HTTPS加密内容: