ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:29.25KB ,
资源ID:16212142      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16212142.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(phplib基本手册Word格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

phplib基本手册Word格式.docx

1、然后根据笔者经验,觉得只要很好掌握其中的基本类和方法后,平时的工作几乎都不需要那些额外的高级类就可以完成了。1.将数据库驱动和对数据库操作完全分离,这样的好处是对数据库的操作你需要的知识仅仅是SQL语言而不需要去估计各 个不同数据库间的函数不同,如果需要将程序移植的话,那么phplib的优势非常明显。需要修改的仅仅是数据库驱动文件,而程序行几乎都不需要修改任何一 行。如果是采用具体数据库函数操作的程序(例如用MySQL函数编写),那么移植起来几乎是等于重新编写。区别一看就知道了。2.支持Session,这个功能可以创建一个受保护的页面。它可以广泛的应用 到需要进行登陆或者依靠帐号和权限来判别的

2、程序。例如论坛、虚拟社区、新闻发布、用户管理、电子商务等。而且这个和纯粹的cookie不同,采用了 base_64的编码和解码。因此一般并不容易破译。为了加强安全性,用户可以自己编写自己的编码方式取代它原来的编码方式。同时phplib还将每一个会话都保存到数据库中,因此可以通过查询数据库值得有多少用户在线上。3. 权限许可(Perm),这个功能可以定义一系列具有不同级别和权限的用户。不需要编程人员额外地自己编写相应功能的代码就可以实现了分级管理和限制。同时 可以利用phplib中page/admin目录中的管理程序创建用户和修改相关信息。编程人员可以修改这些程序来服务自己的系统,节省了大量时间

3、。4. 模板templete,和FastTemplete类似的是,phplib也有自己的模板功能类和文件。让用户可以方便的创建和修改html模板,并且将 php代码和html代码分离。便于让程序员和美工良好的合作。phplib的模板采用了定义标记和语法分析、模式匹配等技术,从而实现了和 FastTemplete类似的功能。编程人员可以根据实际的需要对这个功能代码进行修改以满足自己需求。5.购物车Cart,这个是个比较简易的购物车,各种物品和项目可以存放到车中,也可以被取出来,通过一些改造后也可以将这个功能做成电子商务中流行的购物系统的。 6.Html部件,在phplib中还有一些称为HTML

4、Widgets的东西,可以方便地生成窗口/表格等。具体可以参考phplib手册。这里不再赘述。四.phplib基本安装和使用 要想使用phplib强大的功能,有几种途径可以达到目的。1.采用phplib建议的安装方式,说安装,其实就是把phplib的类预先让解析器加载到内存,这样使用的时候就 不需要做任何设置,这样的好处显而易见。不过缺点也是很多的,如果程序按照这个方式直接引用phplib的函数的话,对于一些采用虚拟主机的用户来说,如 果ISP的服务器没有安装phplib的话,就不可以直接使用phplib了。所以这个方式的前提是:你的ISP支持phplib或者你有权限控制web 服务器,对于一

5、般用户在自己机器上调试的话,这个方式比较好。详细做法这里不再赘述,只简单说个过程而已:a.下载phplib最新包,并解压好。b.将里面的php目录的内容放到一个安全的地方,例如/usr/local/phplib下 c.将这个目录的路径名添加到php3.ini/php.ini的include关键字段后include .:/usr/local/phplib 然后在找到auto_prepend_file关键字改成:auto_prepend_file = prepend.php3 重新启动一次web服务器,用phpinfo()函数检查包含路径和自动预加载参数,如果显示的值和刚才设定的一样的话就证明成功

6、了。更加详细的安装/设定可以参考phplib的文档。2. 包含的方式。这个方式就是比较麻烦,但是好处就是对于使用虚拟主机的用户来说,可以不需要ISP支持phplib就能享受phplib的功能。基本方法很 简单,可以在使用到phplib功能的程序最顶部加入相应的包含文件。不过要注意文件之间的相互依赖关系,下面是一个简单例子,它可以调用到基本的 MySQL数据库驱动功能和Session功能:$LIBDIR = /usr/local/phplib ;require($LIBDIR . db_mysql.inc);ct_sql.incsession.inclocal.incpage.inc五.如何使用

7、phplib数据库驱动(一) 第一部份:数据库连接/查询 a.四步曲:【ChinaByte 教程】1.要根据库中的DB_Sql来编写一个类,这个只需要在你的顶层包含文件中定义好就行了,同一个程序使用时不需要重定义,例子是:class slashDB extends DB_Sql var $classname=slashDB/* Remember to change the below items to match your db */var $Host = localhostvar $Database = abcvar $User = var $Password = function halt

8、($msg) printf(数据库出现错误!: %s n, $msg);MySQL 错误! %s (%s) n, $this-Errno, $this-Error);请联系WebMaster并报告此出错信息得详细内容。n die(Session 挂起。 其中slashDB的名字是任意的,根据编程者的喜好设定,不过都建议用extends语句生成的类的名字 最好都有DB两个字。例如userDB,slashDB。并且$classname要和class slashDB extends DB_Sql中 slashDB一样!否则类定义出错。其他需要修改的仅仅是类的名字,$classname,$Host,$

9、Database ,$User,$Password等需要修改。函数halt是错误提示。你可以自定义到一个页面。2.使用编写好的类的时候,用new关键字 $abc = new slashDB; 其中$abc是个变量名,这代表你要使用slashDB类的功能。3.查询数据库 一般有2个方法,短的查询直接将语句写到函数,长的就先用一个变量分别储存再查询。a. 短语句:$abc-query(SELECT * FROM user WHERE username=kk AND passwd= 注意的是这里是一个调用slash类中的方法query,并且数据库查询语句不能漏了,否则出错。b.长语句 $q = SE

10、LECT username,passwd,email,nation,url,edulev$q .= ,seclev FROM user WHERE username=$usernameAND aid=$aid ORDER BY ID DESCquery($q); /这里才执行查询采用了短语句合成长语句的方法。其中需要注意的是第一个$q是起始的语句,不能跟“.”号!接着同名的$q就是需要和第一个$q合成的变量,其实是同一个变量但是分别赋一个长语句的不同 部分。因为为了避免互相覆盖就用“.”号!切记切记!另外查询语句中该有空格的必须有空格,即使该行没有,下一行也必须有。例如$q .= 句中最后有一

11、个空格如果他没有,而接着的行开头没有的话,数据库查询会出错的。4.取得结果 next_record();这个是一个没有返回值的语句,他只会让Record;这个方法产生相应的查询 结果。如果没有这句话就不会产生相应的结果。next_record()是将当前指针向前移动并更新Record 、Error、Row、Errno的函数。因此不运行他一定不能够产生你需要的结果。$temail = $abc-Recordemail;$turl = $abc-url这几句就是将查询后的结果赋值给指定的变量。注意:一般如果返回的row超过一行,你就要用习惯方法: while($abc-next_record()

12、php代码 来进行处理了。这个方法就是便历了所有查询到的结果。六.如何使用phplib数据库驱动(二) 第二部份:数据库插入/删除 b. 插入/两步曲:【ChinaByte 教程】1.创建一个调用类的变量 $add = new slashDB;2.进行数据库查询操作(实际上无论是SELECT还是INSERT等语句都是调用query方法和MySQL交互的)$add-INSERT INTO vars VALUES (a,bc)注意这里其实INSERT语句有很多写法,其中最多用的就是以下几种:(1).直接赋值:INSERT INTO 表名字 VALUES (值列表,用号包含,用,号分隔);例子:(2

13、).指定插入字段:INSERT INTO 表名字 (指定字段名字列表) VALUES (对应字段值);INSERT INTO vars (name,mail) VALUES (kkk两者差别在于第一种必须给所有字段赋值,无论是空还是非空都要赋值,如果数据表有很多字段 而你开始只需要插入很少几个字段,那么就会浪费很多人力了。第一种适合于字段少的情况。第二种就是为了处理第一种的缺陷的。但是不适合于数据表字段少的情况。删除/两步曲:1.创建一个调用类的变量$del = new slashDB;2.查询操作$del-DELETE FROM user WHERE username=一般这是删除某一条特定

14、记录。如果要删除全部内容更加容易。只需要DELETE FROM 数据库表名字可以了。c.数据库内容更新更新/两步曲:1.创建一个调用类的变量 $update = new slashDB;2.查询操作 UPDATE user SET username=,passwd=$pwd,email=$mailWHERE ID=$id AND DATE=$date$update-这里UPAATE就没有什么特殊的格式,基本上都是UPDATE 数据库表 SET 字段名=字段值 判断条件(WHERE语句)。这个加入了WHERE语句是为了更新某一条特定的记录。七.如何使用phplib的Session功能 基本的Se

15、ssion使用方法 【ChinaByte 教程】以下就是一个以用户登陆和注销为例子的Session使用例子,通过它你就会明白如何使用session以及Session是如何起作用的。你也会体会到使用了Phplib/Zsulib的好处和带来的便利。a.建立一个Session的类class slashSess extends Session var $classname = slashSess / 和定义DB_Sql的道理一样var $magic = fkIsNotEqualToIK / 随机化Session的字符串,建议用函数生成唯一串 var $mode = cookie / 在GET模式时使用

16、cookie var $lifetime = 86400; / session cookie的生存时间(单位:秒) var $that_class = slash_sql / 要使用的目标数据库名字(一般情况并没用上)var $allowcache = no / 是否使用缓冲?有3个选项:no/public/private 其中slashSess这个名字可随便修改的,但是和定义 DB_Sql的extends一样要保证和$classname名字一样就可以了。其中这个定义了类slashSess的式子中,$magic的字串建议 使用随机函数产生独立的字串以避免重复。以下我给出一个小函数,以生成一个指

17、定字长的独立随机串:/* function: unimagic() 版本:1.0 日期:2000/8/9 编写地:北京parameter: $length 需要产生的随机串的长度,默认是8位,最长32位 */function unimagic($length=8) srand(double)microtime()*1000000);$ran = rand();$md5 = md5($ran);$magic = substr($md5,0,$length);return $magic;b.使用Session功能 本部分配合例子Login.php来说明如何运用Phplib/Zsulib中sessi

18、on.inc文件中相关函数/类,这里分几个部分:利用page_open函数打开一个类对应方法的数组;注册提交的一些参数;利用page_close函数关闭页面同时保存注册的信息;释放注册的参数。结束一个Session会话。这个小程序的流程(为了突出重点,这里尽量简化程序,多余的部分全部删除) 初始化页面-page_open调用Session(开始)-$op=login,注册提交参数 $op=logout,释放参数。1.初始化页面 这里需要用到两个类slashDB和slashSess;其中这两个类都在前面文档中提到。这两个类假定存放在config.php文件里。因此首先必须包含这个文件以便可以调用

19、这两个类。/范例页面 ver 0.1 2000/8/24 /$ID:Login.php By hzqbbc in hp$/require config.php/开始定义函数function display_login() 内容 function error_msg() 内容 /结束定义函数2.page_open调用Session开始 /调用page_open函数,其中slashSess是在config.php定义好的类 page_open(array(sess=);尽量不要在page_open前require一些会产生html代码或者进行输出html代码的操作。否则会出现提示说已经发送了Hea

20、der信息而不能再次发送的错误。 3.如果$op=login,进行登陆操作并注册信息:if ($op=loginif (isset($passwd) & isset($username) /判断用户名和密码是否空?否就继续$sl_q = new slashDB;/调用类SELECT seclev FROM user WHERE username=$passwd$sl_q-/查询结果 /如果结果非空(意味着用户密码名字都正确)就继续if ($sl_q-next_record() $seclev = $sl_q-seclev/给$seclev赋值 /调用register函数,将所有需要记录的变量全

21、部注册$sess-register(usernamepasswd4.如果$op=logout,进行注销信息操作 logout/调用delete函数删除注册的变量delete();/删除后,对变量进行重新赋值并初始化成原始状态$seclev = 0$passwd = $username = exit;echo 你已经注销了!5.结束本程序在结束前必须调用page_close();这样就完成了一个完整的Session会话。 如果已经执行了logout操作就不要执行了。所以完整语句是:if ($op!=) page_close();结束:一定要注意程序编写顺序,否则会产生逻辑错误。本例子就是一个最简

22、单的用户登陆的模型所有采用Phplib的用户管理模式都和这个差不多。八.使用phplib编程具体例子 1.一些声明 关于本例子,本例子原来是为本协会(中山大学GNU/Linux协会)内部会员编写的,因此从比较长远的角度考虑 来编写,考虑比较多的是代码编写规范和习惯与算法。考虑到这些因素对编程也是很重要的,因此相关的章节与内容我并没有删除,如果读者觉得这部分没必要的话 请email通知笔者,谢谢。2.代码的编写风格 这里讲的 不是如何写注释或者是如何写版权信息,而是提出若干比较有代表性和比较优美的编程习惯(这里称做风格)。一般来说,php和perl等web脚本程序,都 不可避免地和html等扯上

23、关系。而相当多的程序员并没有很好地注意自己的php/perl代码和html代码的关系,造成了程序行艰涩难懂,结构混乱最 后连自己都懒得看的结局。本人从开发ZSU-Slash-Pro的这一个月里发现,优秀的程序不仅仅有优秀的算法,还有优美而易懂的程序结构。尤其对于大型程序来说,如果代码含糊,结构混乱的话,即使是程序开发者本人,看起代码也会觉得格外费力,其他人看起来就更加辛苦了。因此很有必要摸索并制订出一套合适的编写代码的规范,用这套规范来约束和统一程序开发人员开发的代码风格。使之易于阅读和修改,方便日后维护和进一步开发的人员,使调试程序简单化成为可能。这里,我主要参考了PHPSlash和phpl

24、ib和FreeTrade等几个中大型程序,结合自己的一点小经验,总结出了以下几点:(1).通用内容做成包含文件 这个方法是将每个生成的页面都会包含的通用内容做成包含文件,这样减少了程序的长度。便于统一修改例如phpslash中它每个页面都要使用一个统一的 Header/Footer,因此只需要创建两个包含文件slashhead.inc和slashfoot.inc文件,然后在每个php程序中使用 require语句包含它们进入代码内部就可以了。注意:并不是只规定使用header和footer,如果你愿意,你可以添加任意多个require的部分。(2).公共函数库对于那些经常使用的函数和变量,没必要在每个程序内都定义和声明,而只需要将

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1