9core.com - 九核技术交流网

九百链
为了更好的解决实际工作中遇到的问题,本站开设了QQ群 ASP+PHP+JSP+.NET①:9793624
ASP+PHP+JSP+.NET②:17775294
网站通告: 新开设QQ群,群号:17775294 九核WEB技术专业论坛 官方QQ群 9793624
搜索: 您的位置主页> 程序开发 > Php技术 >
  • 2008-09-12如何编译PHP源代码
  • 综述:我们将要介绍Zend公司的最新工具ZendEncoder,利用这个工具,我们就可以实现编译PHP,从而达到保护PHP源代码的目的。如何安装ZendEncode?一、先去www.zend.com去注册一个用户https://www.zend.com/add_user.php二、在你的注册信箱里得到登录名和密码后,从https://www.zend.com/login.php登录,如果成功则会自动跳转回Zend的首页,这时点击首页右上边的导航栏里的Store,然后再点击EnterpriseProducts,再点击ZendEncoderUnlimited,然后再点击右边的Price:$2400下面有一个Testdriveavailable的链接,进去后再点击右侧下方的Testdriveavailable按钮,这时候我们会看到Zend的相关产品,选择ZendEncoderUnlimitedTestDrive右边的GetIt(播放按钮)三、看到Download后,点击Step2:RequestProductLicense,这时候Zend需要我们提供一个hostid号,这个是标识你的电脑的唯 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09PHP会话——session 时间设定使用入门
  • 在PHP开发中对比起Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用。rsAi3ZfFquEW7bJOQbdWN8aREK70FbjkIOC1fPDb由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。rsAi3ZfFquEW7bJOQbdWN8aREK70FbjkIOC1fPDb对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能 只做一次验证。为什么呢?因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09PHP中的XML应用
  • 综述XML代表ExtensibleMarkupLanguage(eXtensibleMarkupLanguage的缩写,意为可扩展的标记语言)。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。XML是当今最热门的技术。而PHP也具有分析XML文档的功能,下面我们将共同探讨一下PHP中的XML应用的情况。ABn3WZZqv5fY45RKx6nYk93VsNEntEkooQMvdq9FXML概貌ABn3WZZqv5fY45RKx6nYk93VsNEntEkooQMvdq9F谈起XML(eXtendedMarkupLanguage:可扩展标记语言),我们不妨先看一段HTML的代码:ABn3WZZqv5fY45RKx6nYk93VsNEntEkooQMvdq9F <html><title>XML</title><body><p><center><fontcolor="red">TEXT</font></ce .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-097种流行PHP集成开发工具(IDE)的比较
  • 本文发掘集成开发环境(IDE)的所有用途,并比较7种流行的IDE的成本和优势。ITQS5v1GvUnmVwrwO2cVgjkFSYTHVuOUfkX1XAT8编写关于PHP的系列文章让我更加深刻地了解了PHP开发人员的世界。我和许多PHP程序员交谈过,最令我惊奇的是只有很少的人使用IDE。大多数程序员使用文本编辑器,比如MicrosoftWindows上的记事本、Emacs或者Vim。ITQS5v1GvUnmVwrwO2cVgjkFSYTHVuOUfkX1XAT8我提到的这些文本编辑器(以及我没提到)都是很不错的——我不想讨论哪个编辑器更好。但是,我要强调的是不使用文本编辑器会使您对PHP代码有更深的见解。几乎所有人都将PHP项目视为只不过是文件目录而已(这种看法十分片面)。现在就让我带您进入IDE的世界,向您展示IDE能够——或者应该——给您带来什么,并向您介绍七个最流行的IDE。ITQS5v1GvUnmVwrwO2cVgjkFSYTHVuOUfkX1XAT8什么是IDE?ITQS5v1GvUnmVwrwO2cV .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09在PHP中全面阻止SQL注入式攻击之三
  • 一、建立一个安全抽象层V9NGORfzsRyS78I5Proca41QeuTdD8NwuQX21vkP我们并不建议你手工地把前面介绍的技术应用于每一个用户输入的实例中,而是强烈推荐你为此创建一个抽象层。一个简单的抽象是把你的校验方案加入到一个函数中,并且针对用户输入的每一项调用这个函数。当然,我们还可以创建一种更复杂的更高一级的抽象-把一个安全的查询封装到一个类中,从而应用于整个应用程序。在网上已经存在许多这种现成的免费的类;在本篇中,我们正要讨论其中的一些。V9NGORfzsRyS78I5Proca41QeuTdD8NwuQX21vkP进行这种抽象至少存在三个优点(而且每一个都会改进安全级别):V9NGORfzsRyS78I5Proca41QeuTdD8NwuQX21vkP1.本地化代码。V9NGORfzsRyS78I5Proca41QeuTdD8NwuQX21vkP2.使查询的构造更快且更为可靠-因为这可以把部分工作交由抽象代码来实现。V9NGORfzsRyS78I5Proca41QeuTdD8NwuQX21vkP3.当基于安全特征进行构建并且恰当使用时,这将会有效地防止我们前面所 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09在PHP中全面阻止SQL注入式攻击之二
  • 一、注入式攻击的类型45ZU451mh4OjDBKKyHB79MFLKXYIy9gU7JB60BJN可能存在许多不同类型的攻击动机,但是乍看上去,似乎存在更多的类型。这是非常真实的-如果恶意用户发现了一个能够执行多个查询的办法的话。本文后面,我们会对此作详细讨论。45ZU451mh4OjDBKKyHB79MFLKXYIy9gU7JB60BJN如果你的脚本正在执行一个SELECT指令,那么,攻击者可以强迫显示一个表格中的每一行记录-通过把一个例如"1=1"这样的条件注入到WHERE子句中,如下所示(其中,注入部分以粗体显示):45ZU451mh4OjDBKKyHB79MFLKXYIy9gU7JB60BJN SELECT*FROMwinesWHEREvariety='lagrein'OR1=1;' 45ZU451mh4OjDBKKyHB79MFLKXYIy9gU7JB60BJN正如我们在前面所讨论的,这本身可能是很有用的信息,因为它揭示了该表格的一般结构(这是一条普通的记录所不能实现的),以及潜在地显示 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09在PHP中全面阻止SQL注入式攻击之一
  • 在本系列文章中,我们将全面探讨如何在PHP开发环境中全面阻止SQL注入式攻击,并给出一个具体的开发示例。sbDl0TZf58iWZi4fYGrqRQz398zmeX6Sd2Xz6D0R一、引言sbDl0TZf58iWZi4fYGrqRQz398zmeX6Sd2Xz6D0RPHP是一种力量强大但相当容易学习的服务器端脚本语言,即使是经验不多的程序员也能够使用它来创建复杂的动态的web站点。然而,它在实现因特网服务的秘密和安全方面却常常存在许多困难。在本系列文章中,我们将向读者介绍进行web开发所必需的安全背景以及PHP特定的知识和代码-你可以借以保护你自己的web应用程序的安全性和一致性。首先,我们简单地回顾一下服务器安全问题-展示你如何存取一个共享宿主环境下的私人信息,使开发者脱离开生产服务器,维持最新的软件,提供加密的频道,并且控制对你的系统的存取。sbDl0TZf58iWZi4fYGrqRQz398zmeX6Sd2Xz6D0R然后,我们讨论PHP脚本实现中的普遍存在的脆弱性。我们将解释如何保护你的脚本免于SQL注入,防止跨站点脚本化和远程执行,并且阻止对临时文件及会话的" .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09构建可配置PHP应用程序的正确方式
  • 本文举例说明了创建可配置PHP应用程序的几种方法。文中也探讨了应用程序中理想的配置点,并在应用程序过分可配置和过分封闭之间寻求一个平衡点。Cdhw88LB6WNAw0nhksuh3UR3v2FttbyQY2pDEsKj如果计划让其他人或公司可以使用您的PHP应用程序,需要确保该程序是可配置的。至少,要允许用户以一种安全的方式设置数据库登录及密码,从而使其中的材料不会对外公开。Cdhw88LB6WNAw0nhksuh3UR3v2FttbyQY2pDEsKj本文展示了几种用于存储配置设置及编辑这些设置的技术。另外,文中也为哪些元素需要设为可配置以及如何避免陷入配置过度或者配置不足的困境提供了指导。Cdhw88LB6WNAw0nhksuh3UR3v2FttbyQY2pDEsKj使用INI文件进行配置Cdhw88LB6WNAw0nhksuh3UR3v2FttbyQY2pDEsKjPHP内建了对配置文件的支持。这是通过php.ini文件这样的初始化文件(INI)机制实现的,在php.ini文件中定义了数据库连接超时或会话如何存储等常量。如果愿意的话,可以在这个php.ini文件中为应用程序定制配 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09跟我来学PHP5:session会话的使用和分析
  • Session的中文译名叫做“会话”,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。目前社会上对session的理解非常混乱:有时候我们可以看到这样的话“在一个浏览器会话期间,...”,这里的会话是指从一个浏览器窗口打开到关闭这个期间;也可以看到“用户(客户端)在一次会话期间”这样一句话,它可能指用户的一系列动作(一般情况下是同某个具体目的相关的一系列动作,比如从登录到选购商品到结账登出这样一个网上购物的过程;然而有时候也可能仅仅是指一次连接;其中的差别只能靠上下文来推断了。Aw7ycachrTEk7j5hWeUsod3kN78njliZLQ73CMKN然而当session一词与网络协议相关联时,它又往往隐含了“面向连接”和/或“保持状态”这样两个含义,“面向连接”指的是在通信双方在通信之前要先建立一个通信的渠道,比如打电话,直到对方接了电话通信才能开始。&ldq .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09PHP和AJAX打造高级RSS聚合器
  • RSS聚合器是一种特别适合于使用标准AJAX引擎进行构建的应用程序,然而,要实现对RSS回馈的跨域的AJAX请求往往是很难的。在本文中,我将向你展示如何利用一个简单的PHP函数来实现"桥接"AJAX引擎和RSS内容。一、引言现在,开发一个RSS聚合器已经不再是困难的事情,但是开发一个高质量的RSS聚合器却仍然存在相当的难度。另一方面,创建一个定制聚合器一般不是很难,并且在这种聚合器内能够提供一个你自己选择的接口。RSS聚合代表了一类特别适合于一个AJAX应用程序所消费的数据,这是因为:它是XML格式的,并且AJAX能够良好地显示新的回馈而不必进行页面刷新。然而问题总是存在:在一个标准的AJAX引擎中实现跨域的AJAX请求是不可能的。在本文中,我将向你展示如何利用一个很简单的PHP函数来桥接AJAX引擎和远程内容(在本文中它指的是RSS回馈)。【提示】本文假定你已经对PHP有一个基本理解并且有使用AJAX和分析XML的经验。要全面理解本文所提供的示例,你需要下载相应的源码文件。二、开始在我们正式开始前,我想简短地介绍一下我们将用于发出请求的AJAX引擎。该引擎能够简化 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09更好的构造开发模板 五种PHP设计模式
  • 设计模式只是为Java架构师准备的——至少您可能一直这样认为。实际上,设计模式对于每个人都非常有用。如果这些工具不是“架构太空人”的专利,那么它们又是什么?为什么说它们在PHP应用程序中非常有用?本文解释了这些问题。设计模式一书将设计模式引入软件社区,该书的作者是ErichGamma、RichardHelm、RalphJohnson和JohnVlissidesDesign(俗称“四人帮”)。所介绍的设计模式背后的核心概念非常简单。经过多年的软件开发实践,Gamma等人发现了某些具有固定设计的模式,就像建筑师设计房子和建筑物一样,可以为浴室的位置或厨房的构造方式开发模板。使用这些模板或者说设计模式意味着可以更快地设计更好的建筑物。同样的概念也适用于软件。设计模式不仅代表着更快开发健壮软件的有用方法,而且还提供了以友好的术语封装大型理念的方法。例如,您可以说您正在编写一个提供松散耦合的消息传递系统,也可以说你正在编写名称为观察者的模式。用较小的示例展示模式的价值是非常困难的。这往往有些大材小用的意味,因为模式实际上是在 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09PHP5中PDO的简单使用
  • PDO(PHPDataObject)是PHP5新出来的东西,在PHP6都要出来的时候,PHP6只默认使用PDO来处理数据库,将把所有的数据库扩展移到了PECL,那么默认就是没有了我们喜爱的php_mysql.dll之类的了,那怎么办捏,我们只有与时俱进了,我就小试了一把PDO。(本文只是入门级的,高手可以略过,呵呵)【PDO是啥】PDO是PHP5新加入的一个重大功能,因为在PHP5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、MSSQLServer、SQLite,同样的,我们必须借助ADOdb、PEAR::DB、PHPlib::DB之类的数据库抽象类来帮助我们,无比烦琐和低效,毕竟,php代码的效率怎么能够我们直接用C/C++写的扩展斜率高捏?所以嘛,PDO的出现是必然的,大家要平静学习的心态去接受使用,也许你会发现能够减少你不少功夫哦。【安装PDO】我是在WindowsXPSP2上面,所以嘛,整个 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09用PHP构建一个简易监视引擎
  • 摘要:在本文中,让我们共同探讨基于PHP语言构建一个基本的服务器端监视引擎的诸多技巧及注意事项,并给出完整的源码实现。 51W0VlrfR97T23kthrCcrQ7lDPIDA44tOJTqLhFj一.更改工作目录的问题当你编写一个监视程序时,让它设置自己的工作目录通常更好些。这样以来,如果你使用一个相对路径读写文件,那么,它会根据情况自动处理用户期望存放文件的位置。总是限制程序中使用的路径尽管是一种良好的实践;但是,却失去了应有的灵活性。因此,改变你的工作目录的最安全的方法是,既使用chdir()也使用chroot()。chroot()可用于PHP的CLI和CGI版本中,但是却要求程序以根权限运行。chroot()实际上把当前进程的路径从根目录改变到指定的目录。这使得当前进程只能执行存在于该目录下的文件。经常情况下,chroot()由服务器作为一个"安全设备"使用以确保恶意代码不会修改一个特定的目录之外的文件。请牢记,尽管chroot()能够阻止你访问你的新目录之外的任何文件,但是,任何当前打 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09深入探讨PHP中的内存管理问题
  • 摘要:内存管理对于长期运行的程序,例如服务器守护程序,是相当重要的影响;因此,理解PHP是如何分配与释放内存的对于创建这类程序极为重要。本文将重点探讨PHP的内存管理问题。  5UNDaeiwRYhdofPLmw7Ak1ce7gU70uhWX4STaVQ6一、内存在PHP中,填充一个字符串变量相当简单,这只需要一个语句"<?php$str='helloworld';?>"即可,并且该字符串能够被自由地修改、拷贝和移动。而在C语言中,尽管你能够编写例如"char*str="helloworld";"这样的一个简单的静态字符串;但是,却不能修改该字符串,因为它生存于程序空间内。为了创建一个可操纵的字符串,你必须分配一个内存块,并且通过一个函数(例如strdup())来复制其内容。 { char*str; str=strdup("helloworld"); if(!str){fprintf(stderr,"Unab .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09用PHP+MySQL搭建聊天室
  • MySQL并发能力强、响应速度快,是性能优异的数据库软件;PHP是功能强大的服务器端脚本语言。笔者在山西铝厂网站开发中,采用PHP4.0+MySQL3.23.38建立了多种应用。下面,以一个简单的聊天室设计为例,介绍PHP+MySQL在网页开发中的应用。1、总体设计1.1构思与规划:聊天室的基本原理,就是把每个连上同一网页的用户传送的发言数据储存起来,然后将所有的发言数据传给每一用户。也就是说,用数据库汇集每个人的发言,并将数据库中的数据传给每一个人就实现了聊天室的功能。1.2表设计首先使用MySQL建立表chat用来储存用户的发言: mysql>CREATETABLEchat->(chtimeDATATIME,->nickCHAR(10)NOTNULL,->wordsCHAR(150));表中只设定了三个域,chtime是发言的时间,nick为发言者的昵称,words是发言的内容,发言最多150个字符1.3网页设计一个最简单的聊天室通常需要两个页框:一个页框是用户输入发言的表单,另一个用来显示大家的发言。所以代码段通常至少需要如下几段:建立页框的结构(main.php)显示 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09五个常见 PHP 数据库问题
  • 揭露PHP应用程序中出现的五个常见数据库问题——包括数据库模式设计、数据库访问和使用数据库的业务逻辑代码——以及它们的解决方案。如果只有一种方式使用数据库是正确的……您可以用很多的方式创建数据库设计、数据库访问和基于数据库的PHP业务逻辑代码,但最终一般以错误告终。本文说明了数据库设计和访问数据库的PHP代码中出现的五个常见问题,以及在遇到这些问题时如何修复它们。问题1:直接使用MySQL一个常见问题是较老的PHP代码直接使用mysql_函数来访问数据库。清单1展示了如何直接访问数据库。清单1.Access/get.php <?phpfunctionget_user_id($name){ $db=mysql_connect('localhost','root','password'); mysql_select_db('users'); $res=mysql_query("SELECTidFROMusersWHERElogin='".$name."'"); wh .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09用PHP控制您的浏览器cache
  • OutputControl函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用header()或setcookie(),发送的文件头信息产生影响,只对那些类似于echo()和PHP代码的数据块有作用。我们先举一个简单的例子,让大家对OutputControl有一个大致的印象:Example1. <?phpob_start();//打开缓冲区echo"Hellon";//输出header(“location:index.php”);//把浏览器重定向到index.phpob_end_flush();//输出全部内容到浏览器?>所有对header()函数有了解的人都知道,这个函数会发送一段文件头给浏览器,但是如果在使用这个函数之前已经有了任何输出(包括空输出,比如空格,回车和换行)就会提示出错。如果我们去掉第一行的ob_start(),再执行此程序,我们会发现得到了一条错误提示:“Headerhadallreadysendby”!但是加上 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09PHP开发入门教程之面向对象
  • PHP是弱变量的脚本语言,也就是说你无需先定义,这一点很灵活。也可以给予很大的自由度,但对于程序来说,自由并非好事。因为给予后期维护人员阅读带来很大的麻烦。下面来进入我们第一个程序:1.php ////////////////////<?classhelloWorld{ var$hellow_str="HelloWorld!"; functionhelloWorld(){echo$this->hellow_str; }}$p=newhelloWorld;?>////////////////////很明显,这是一个类,很简单的类,只有一个构造函数。目的就是输出"HelloWorld";首先我们定义了一个类成员变量,通过一个特殊的$this对象,输出该变量,oop思想我不是很精,仅仅在于php开发方面用到,其他的也只是借鉴,但是我想对于php开发者已经足够了。接下来,解释下什么是$this对象,从这点我们先要知道什么是类。类,可以解释为一群相同的群体,在类中的成员变量,如上面的$hellow_str可以看作是这个群体的独特的特征,比如,桌子 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09结合AJAX的PHP开发之后退、前进和刷新
  • 简介第1部分介绍了如何用Sajax、PHP和JavaScript开发基本的相册。在为应用程序建立历史堆栈的过程中,我们将依靠客户端技术,并将其直接与第1部分的代码结合在一起。本文假设读者了解JavaScript和浏览器cookie。在浏览器中保存状态在网上冲浪的时候,总是从一个页面到另一个页面,从一个站点到另一个站点。在这个过程中,Web浏览器忠实地记录了您曾经到过何处的历史记录,创建了一条面包屑型(breadcrumbs)数字轨迹,沿着这条轨迹能够一步一步地回到出发点。后退按钮允许您回到上一个动作之前所在的位置,从这个意义上说它就是Web上的撤销按钮。Web是一种按页划分的的媒体。浏览器工具栏中的后退和前进按钮指引着浏览器从一个页面移动到另一个页面。当Macromedia的Flash风行一时的时候,开发人员和用户发现富互联网应用程序(RichInternetApplication,RIA)打破了这种模式。用户可以在几个站点上浏览,然后登录一个基于Flash的网站,在这个网站上消磨几分钟。当用户单击后退按钮时,游戏结束了。用户没有回到先前的那个Flash站点,完全不知道到了什么地方。对 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-09-09结合AJAX进行PHP开发之入门
  • 异步JavaScript和XML(AsynchronousJavaScriptandXML,Ajax)无疑是最流行的新Web技术。本文中我们将完全使用PHP和SimpleAjaxToolkit(Sajax)创建一个简单的相册作为在线Web应用程序。我们首先用标准的PHP开发方法编写简单的相册,然后再用Sajax将其变成活动的Web应用程序。创建一个简单的相册本文将使用两种方法创建一个简单的相册:传统的Web应用程序和基于Sajax的应用程序。我们将用PHP编写一个相册,读取某一目录中的内容,显示缩略图组成的表格。如果用户单击一个缩略图,就会完全展开该图像。因为编写的是传统应用程序,所以每次单击都会是一个新的HTTP请求,而参数则作为URL的一部分传递。您将学习如何将Sajax库应用于相册,了解为何使用Sajax可以加快应用程序的开发。添加一个分页器表访问相册的用户需要某种快速查看照片的方法。因为很多大照片不容易在一页上显示,所以需要创建一个分页器——每次显示少量缩略图的简单表格。还要编写导航,帮助用户在图像列表中来回移动。 图1.分页器提供了显示用户照 .... [阅读全文]
  • 来源:互联网作者:
共有338条记录,17页,当前第 11 2 3 4 5 6 7 8 9 10 >>
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助