#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加密内容: