`

使用和学习PHP有多难

阅读更多

PHP不是什么复杂高深的技术,但同时,你也不要期望能够在5分钟之内就成为专家。对于新手来说,最大的不适应可能就是PHP的容错度比浏览器对HTML的容错度要低得多。在HTML中如果漏掉了一个结束标签,大多数的浏览器仍然会显示该页面。在PHP中,如果你漏掉了一个结束引号、分号或大括号,将会像图1-3所显示的那样得到一条错误消息。这不仅仅是PHP的一个特性,所有的服务器端技术都是如此,包括ASPASP.NETColdFusion

 

1-3 像PHP这样的服务器端语言无法容忍大多数的编码错误

如果你是使用可视化设计工具(如Adobe DreamweaverMicrosoft Expression Web)的网页设计人员或开发人员,并且从不留意基础代码,那么是时候该反思一下你的方法了。将PHP和结构差的HTML混合在一起有可能会导致一些问题。PHP利用循环来执行重复性任务,如显示数据库搜索的结果。一个循环loop)重复同一段代码(代码通常同时包含PHPHTML),直至所有的结果都显示出来。如果你将循环放到了错误的位置,或者HTML的结构差,那么页面就有可能像用纸牌搭的房子一样倒塌。如果你还不习惯这样做,使用W3CWorld Wide Web ConsortiumMarkup Validation Servicehttp://validator.w3.org/unicorn)来检查你的页面是一个不错的主意。

W3C是一个国际组织,它负责制定标准(如HTMLCSS),并制定保证Web长期发展的指导方针。它由World Wide Web的创立者Tim Berners-Lee所领导。要想了解W3C的使命,参见www.org/Consortium/mission

   是否可以只复制和粘贴代码

 

复制这本书中的代码没什么错,这正是它们存在的目的。复制是我们小时候都学习过的方法,但我们大多数人都会摆脱模仿的阶段,我们会提出问题并且开始亲自实验。我并不打算用一些对于网页没有直接价值的乏味的练习题来教你学习PHP,本书就是要让你可以直接将新获得的知识运用到实际项目中。同时,我会解释代码是用来做什么的以及它为什么出现在那里。即使不能准确地理解它的工作原理,你也会获得足够的知识来了解代码的哪个部分适合你的需要,哪个部分最好不要去理会。

PHP是一个提供了大量强大功能的工具箱。它拥有数千个内置函数,可以执行各种任务,如将文本转换成大写,从完整尺寸的图像生成缩略图,或连接到数据库。真正的强大之处在于将这些函数以不同的方式组合使用,并且添加进你自己的条件逻辑。为了从本书中学到更多内容,你需要用你在书中学到的工具进行实验,并且提出你自己的解决方案。

PHP的安全性

PHP就像是你家中的电或菜刀:如果正确使用,它是非常安全的;如果不负责任地操作,它就会造成许多伤害。本书第1版的灵感之一就来自2005年年末接二连三爆发的恶意攻击。这些攻击利用了电子邮件脚本的一个漏洞,将网站变成了垃圾邮件中继。没有几个人免遭危害。我当然也未能幸免,但是意识到这个问题以后,我修补了漏洞,并及时制止了这些恶意攻击。不过,每天都有人发送紧急的请求到在线论坛上以寻求帮助。即使被告知如何处理这种问题时,他们的回复甚至变得更加抓狂。许多人承认他们完全不了解他们在网站中使用的代码。有些人把创建网站当成一种业余爱好,这似乎是可以理解的,但是这些人中有许多都是替客户创建网站的“专业人士”。当这些客户们的邮箱开始充满垃圾邮件时,他们自然就会很不高兴。当主机托管公司由于无法忍受服务器上的不安全脚本而将客户的域名禁用时,他们毫无疑问会更加不高兴。

这个故事的寓意不在于PHP是不安全的;也不在于每个人都需要成为使用PHP的安全专家。重要的是了解PHP安全性的基本原则:在处理用户输入之前必须进行检查你会发现这将成为贯穿本书始终的主题。只要付出很少的努力,大多数的安全风险就能够被消除。

最令人担心的方面可能是在这个问题被首次揭示出来五年多之后,我仍然能看到许多人在使用不安全的邮件脚本。保护自己的最佳方法就是了解你正在使用的代码。即使你不能自己解决问题,也可以实施由脚本的编写者或其他专家建议的补救措施。 

——摘自《PHP动态网页设计(第2版)》

分享到:
评论

相关推荐

    功能强大的PHP授权验证系统完整开源版-无任何加密-全权使用

    本源码提供给大家学习研究借鉴美工之用,请勿用于商业和非法用途,无任何技术支持! 这是一套PHP为后端驱动,配合MySQL数据库开发的一套高性能、高可用、功能多、难破解、多应用、轻量的一套程序验证系统。 并且...

    给php新手谈谈我的学习心得

    接着后天就要回福州了,由于家里还没装网络,因此,得有一段时间不能来论坛了,在这之前,我想了下,我给新手解答过问题,演示过代码,好像没谈过自己的学习心得,临走之前,我就来谈谈我学习PHP的心得,虽然是老生...

    PHP-X让有一定工作经验的PHP程序员都能扩展.doc

    Zend API几乎没有任何文档,开发者如果要真正掌握这项技能需要付出大量的学习时间。   于是我今年就冒出一个新的想法,基于我编写swoole扩展超过5年的经验,我试图在Zend API和C 之间建立一个包装层,让PHP...

    PHP教程 初级教程

    PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML...

    PHP程序员学习使用Swoole的理由

    最近两个月一直在研究 Swoole,研究成果即将在6.21正式开源发布,这段时间没有来水文章,趁着今天放假来水水吧。...Swoole 和我们传统的 PHP 开发差别是有的,需要理解的概念也是有的。使用目前一些基于 Swoole

    Seay PHP代码审计工具 V2.0.3源码

    从目前主流的四大动态网页编程(ASP/ASPX/PHP/JSP)语言来分析,目前最火的是PHP,很多CMS等很大一部分是PHP,安全性最难控制的也是PHP,怎么难控制就不说了,既然都开始玩代码审计了,应该懂得。 该版本目前支持...

    Zend_API 深入_php_内核

    要骇客如此复杂的一个系统,不得不学习和思考。构建本章内容时,我们最终选择了“在实战中学习”的方式。这不是最科学也不是最专业的方式,但是此方式最有趣,也得出了最好的最终结果。下面的部分,你将先快速的学习...

    Zend API:深入 PHP 内核

    要想深入这样的一个系统,有很多东西需要学习和考虑。在写这一章节的时候,我们最终决定采用“边学边做”的方式。这也许并不是最科学和专业的方式,但却应该是最有趣和最有效的一种方式。在下面的小节里,你首先会...

    非机器学习类的webshell扫描器,使用的flask+scikit-learn完成的毕业设计程序

    非机器学习类的webshell扫描器,使用的flask+scikit-learn完成的毕业设计程序。 当然比较重要的就是这几个检测功能: 1.上传检测 使用了bootstrap的一个文件上传的框架,可以多文件上传并进行检测。 [image] 检测...

    64位win7下安装Apache+PHP+Mysql+PHPmyadmin

    在学习和操作过程中总会有许多问 题,因此花了两天的时间自己配置了一下,期间有疑问和错误无数,而且网上靠谱的文章不多,垃圾信息又太多,这里总结一下当作今后的笔记。 首先是 软件的选择 由于这些软件 官网都在...

    DaWang PHP自适应博客系统源程序 v1.0.rar

    DaWang PHP自适应博客系统源程序,这是我学习php来做的第一个demo,不容易啊,万事开头难,知道有很多不足还需改进。首页的大图在ad.php文件修改。我本来想放进一个编辑器的,结果想想和改文件没啥区别,争取以后把...

    PHP编程基础与实例教程课件由浅入深

    PHP编程基础与实例教程课件由浅入深,从简到难系统的学习PHP知识;结合多个项目,将知识点串联成一个完整体系。学会PHP知识的同时,掌握科学的学习方法。解锁PHP的正确姿势,结合项目,系统化学习!

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:  第一:XML肯定是未来的...

    phpapp威客系统 v2.6 GBK build20141211.zip

    使用全新的传统风格让更多站长操作更方便。 11.全新的 语言管理功能 前台后台支持多语言切换。 12.全新的 道具商店功能 目前现在 7~8 种道具,用户购买道具网站直接营利,道具将持续开发让站长赚钱更简单更轻松...

    深入PHP与jQuery开发 pdf格式

    提示 我们将在第2章演示使用jQuery的AJAX工具和使用原生JavaScript进行AJAX开发有什么异同。 时至今日,已有很多的JavaScript库可用。最流行的JavaScript库有Prototype(http://www. prototypejs.org)、MooTools...

Global site tag (gtag.js) - Google Analytics