文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHP Web 表单最佳实践系列一

PHP Web 表单最佳实践系列一

时间:2008-01-11  来源:061107

本文原文位于:http://www.zend.com/zend/trick/tricks-june-2002.php 是2002年6月份的文章,因为在从事公司的 CMS 系统的需求和技术准备工作,偶尔看到这篇文章:
http://www.zend.com/zend/art/art-gilmore.php ,才回头大约看了本文,说实在的,本文没有什么深度,可能对于初学者比较有用,作为一种 PHP 编程的实践,我觉得,三言两语也能说明白问题,所以,花费一点时间,敲入几个汉字,就成了本文。以对得住常来浏览我网站的朋友们。
在开始的时候,我想介绍 CMS 的概念, CMS 是 Content Management Systems 的意思,作为网站的一个发布系统,内容管理非常重要。但是在实际的企业应用中,我们必须承认基于 LAMP 架构的 CMS 比较少,所以,文章的原作者会准备写一系列的文章,讲述他的 “Intelligent CMS”。CMS 有很多概念性的东西,诸如:生命周期,版本管理,工作流等,这些都不是本文的重点,我们的重点在于 PHP 的四个实践:
实践之一、表单的“智能化”处理
在 Web 编程中,表单的处理十分常见,我的程序员就喜欢写很多的页面或者表单来简化逻辑。这种偷懒的写法,当然有利有弊。最大的弊端就是因为在多个页面之间提交,因此,会增加无谓的 session 校验以及用户校验的过程,而且会增加全局变量的设置,很容易导致不一致。程序调试起来也比较困难。
看一个简单的例子:


Author Name:




Author Email:




Professional Bio:







这个例子用来添加作者,需要输入作者相关的一些资料,但是,如果我们需要修改作者的资料,那会如何?是否需要另外写表单呢?我们看看下面的代码:




Author Name:




Author Email:




Professional Bio:

$authorBio





END;
echo $authorForm;
} //end authorPrompt()
?>
在这个例子中,表单成了一个函数,采用 heredoc 语法(
实践之二、永远不要相信用户(小心验证用户输入的数据)
在 Web 开发上,你永远不能相信用户一定按照你的设定输入数据,所以,必须小心的验证用户数据,所谓 GIGO(垃圾入,垃圾出)在这里还是小事,如果让黑客利用的话,问题就大了。
下面举例说明几个有用的函数,保证数据的完整性:
1、preg_match()
这个函数提供模式匹配功能,能校验美国的社会安全码:

或者 Email 地址:

2、strip_tags()
这个函数能把所有的 HTML 以及 PHP tag 从数据中过滤掉。
Coca-Cola is my favorite drink!";
$sanitizedInput = strip_tags($userInput);
// $sanitizedInput 输出为:"Coca-Cola is my favorite drink!"
?>
strip_tags() 有另外一个很好的功能就是允许特定的 Tag 继续保留:
Coca-Cola is my favorite drink! ";
$sanitizedInput = strip_tags($userInput, '');
// $sanitizedInput 输出为: "Coca-Cola is my favorite drink!"
?>
请记住,这只是 PHP 诸多字符串相关函数中的两个,更多的功能,就要看你自己从 PHP 手册上的挖掘能力了。
实践之三、不要喂入太多的数据(一个简单防治数据溢出的办法)
在查看表内容的时候,我们会碰到有些数据被截短,实际上这是因为字段的最长长度和表单输入时的 text input 的 maxlength 冲突引起的。为了避免这类情况发生,我们应该在表单输入时,使用 maxlength 来限制客户端的输入长度保持和字段的最大长度的一致。
实践之四、变量不要用别名(保持变量名和列名一致)
没有理由用多个名字来引用相同的数据,如果一个列的名字是:"authorBio",那么就不要用多个变量:"authorsbio", "AuthorBiography" 或者 "authbio" 来引用它。如果几个月之后让你自己来维护这段程序,你会知道其中的痛苦。
总结:
翻译完本文时,确实觉得比较肤浅,但是作为一种实践,不是每个人都能意识到这些好的点子。开发人员必须时时采用最好的开发手段,不仅能减轻维护人员的负担,更能带给用户端很好的 Web 体验。


相关阅读 更多 +
排行榜 更多 +
XLM币最具爆发力的安全交易所币安binance下载

XLM币最具爆发力的安全交易所币安binance下载

金融理财 下载
XEM币最安全隐私链的全球交易所币安binance下载

XEM币最安全隐私链的全球交易所币安binance下载

金融理财 下载
WAVES币最新上线的优质交易所币安binance下载

WAVES币最新上线的优质交易所币安binance下载

金融理财 下载