《图书管理模块开发-PHP教学课件.ppt》由会员分享,可在线阅读,更多相关《图书管理模块开发-PHP教学课件.ppt(25页珍藏版)》请在三一办公上搜索。
1、PHP+MySQL动态网页技术教程,主编:王彦辉,9.1 项目导引:后台图书管理模块,我们如何完成网站的日常管理呢?图书的添加、修改图书类别的添加、修改网站后台管理系统图书后台管理系统中的功能只有管理员才可以使用,普通用户没有权限使用。,9.2 项目分析:ECSHOP,商城后台管理系统的功能主要包括用户管理、商品管理、订单管理和信息管理等内容,这里主要介绍图书管理。下面我们看一下ECSHOP后台管理系统中商品管理部分是如何做的?1新商品添加,9.2 项目分析:ECSHOP,2商品列表3商品分类,9.3 技术准备,9.3.1 文件上传1客户端设置文件上传是通过HTML表单中的标记选择本地文件实现
2、上传。如果希望表单支持文件上传,则表单标签中的enctype和method属性必须指明相应的值。enctype属性是设置表单的MIME编码,其值需设定为“multipart/form-data”,它的默认值“application/x-www-form-urlencoded”是不支持文件上传的;method属性值必须为“post”,“get”方式不能上传文件。,9.3 技术准备,9.3.1 文件上传2服务器端设置PHP的配置文件PHP的配置文件php.ini对上传文件的控制,包括是否支持上传、上传文件的临时目录、上传文件的大小、指令执行的时间和指令分配的内存空间。具体相关指令如下:file_u
3、ploads:是否支持上传。值为on表示服务器支持上传,值为off表示不支持上传;upload_tmp_dir:上传文件的临时目录。在文件上传到指定位置之前,文件会先传到这个临时目录位置;upload_max_filesize:服务器允许上传文件的最大值。系统默认为2MB,如果上传文件超过这个值,则需要修改这个值;max_execution_time:PHP中一个指令所能执行的最长时间,单位为秒。如果上传文件过大,上传时间超过这个值,文件也不能上传成功;memory_limit:PHP中一个指令所分配的内存空间,单位为MB。它的大小同样会影响到超大文件上传。,9.3 技术准备,9.3.1 文件
4、上传2服务器端设置$_FILES全局数组表单通过POST方法上传的文件信息被存储在$_FILES全局数组中,如上传文件的名称、大小、类型等。,9.3 技术准备,9.3.1 文件上传2服务器端设置函数move_upload_file()文件上传后,首先会存储于服务器的临时目录中,可以使用该函数将上传文件移动到新位置。如果成功返回ture,否则返回false。函数语法如下:bool move_uploaded_file(string filename,string destination)函数is_uploaded_file()该函数判断指定的文件是否通过HTTP POST上传的,如果是则返回tu
5、re。函数语法如下:bool is_uploaded_file(string filename)3文件上传实例,9.4 项目实施,主要实现包括图书查看、添加图书、修改图书和删除图书的功能。图书的添加实现图书添加的功能需要创建两个页面,添加图书页面(addbook.php)和保存添加图书页面(saveaddbook.php),添加图书页面负责收集图书信息,保存添加图书页面负责接收图书信息并将信息添加到数据库图书表(tb_book)。,9.4 项目实施,9.4.2 图书的查看单击“管理图书”超链接,弹出图书编辑管理页面,如图96所示。在这里我们可以查看图书、修改图书和删除图书。,9.4 项目实施,
6、图书的删除在图书管理页面(show.php)我们可以删除不需要的图书,图书删除分为一次删除一本图书和一次删除多本图书两种情况。1删除一本图书删除一本图书的实现过程为,单击图书管理页面的“删除”超链接(删除),此时将要删除的图书编号传给图书删除页面(delbook.php),图书删除页面根据图书编号执行delete语句将图书删除,,9.4 项目实施,图书的删除2删除多本图书删除多本图书首先选中要删除图书左边的复选框,单击“删除所选图书”按钮,完成删除过程。下面先来看一下与此相关的图书管理页面中的代码。提交表单:表单提交到删除所有图书页面(delallbook.php)。复选框 value=/复选
7、框name属性值为图书编号,value属性值为图书名称。,9.4 项目实施,图书的删除2删除多本图书删除按钮删除按钮为提交按钮。删除多本图书实现过程为:删除所有图书页面(delallbook.php)接收表单复选框的值,根据此值执行delete语句删除图书。由于存在多选的情况,复选框要传递过多个值过来,所以我们需要使用list和each数组函数,通过循环的方式逐个提取传递过来的值。,9.4 项目实施,图书的修改单击图书管理页面中的“修改”超链接,进入图书修改页面(changebook.php),如图所示。在此页面显示出原图书信息,用户可以只修改错误信息,不用将所有信息都重新填写。,9.5 技术
8、拓展,9.5.1 文件操作1打开文件PHP中使用fopen()函数打开一个文件,语法如下:resource fopen(string filename,string mode,bool use_include_path,resource zcontext)函数返回一个指向这个文件的文件指针。参数列表含义如下:filename:打开文件的URL,包括文件名,可以是绝对路径,也可以是相对路径。mode:打开文件的模式,主要有只读、只写、读写等模式,具体如表9-2所示:use_include_path:可选参数,决定是否在php.ini中include_path指定的目录中搜索filename文件,
9、如果希望搜索则将其值设为1或ture。zcontext:可选参数,fopen()函数允许文件名称以协议名称开始,例如“http:/”,并且在一个远程位置打开文件。通过这个参数,还可以支持一些其它的协议。例9-8,9.5 技术拓展,9.5.1 文件操作2读取文件fgetc()函数:从文件指针的位置读取一个字符。fgets()函数:从文件指针位置读取一行字符串fread()函数:从文件中读取任意长度的数据,还可以读取二进制文件例9-9、例9-10、例9-11,9.5 技术拓展,9.5.1 文件操作2读取文件readfile()函数用于读取指定的整个文件,并写入到输出缓冲区,并返回读取的字节数。该函
10、数也不需要使用fopen()函数打开文件。file()函数用于将整个文件内容读入到一个数组中,数组中的每个元素都是文件中对应的一行。file_get_contents()函数用于将文件内容读入一个字符串。例9-12,9.5 技术拓展,9.5.1 文件操作3写入文件fwrite()函数函数用于执行文件的写入操作,函数语法格式如下:int fwrite(resource handle,string string,int length)fwrite()函数用于把string内容写入文件指针handle处。例9-13,9.5 技术拓展,9.5.1 文件操作3写入文件file_put_contents(
11、)函数函数用于将一个字符串写入文件中。如果成功,则返回写入的字节数,否则返回false。函数语法格式如下:int file_put_contents(string filename,string data,int flags,resource context)filename:指定写入的文件名;data:指定写入的数据;flags:实现对文件的锁定,可选值为FILE_USE_INCLUDE_PATH、FILE_APPEND 和LOCK_EX(独占锁定);context:一个context资源。例9-14,9.5 技术拓展,9.5.1 文件操作4关闭文件文件有打开就有关闭,对文件操作结束后,应该
12、关闭这个文件,因为打开的文件要占用系统资源,同时如果不关闭,也容易引起错误。fclose()函数用于文件的关闭,函数语法格式如下:bool fclose(resource handle)参数handle指向关闭的文件,函数如果执行成功返回ture,否则返回false。,9.5 技术拓展,9.5.2 目录操作1浏览目录opendir()函数:用于打开指定目录,如果成功返回可供其它函数使用的目录句柄,否则返回false。readdir()函数:返回目录指针位置的一个文件名,文件名以在文件系统中的排序返回。scandir()函数:用于列出指定路径中的文件和目录,如果执行成功返回包含目录和文件名的数组
13、,否则返回false。closedir()函数:打开目录之后,我们还需要关闭它,closedir()函数用于关闭指定打开的目录。例9-15,9.5 技术拓展,9.5.2 目录操作2创建、删除目录mkdir()函数:新建一个目录,成功返回ture,否则返回falsermdir()函数:删除目录,目录必须为空目录,而且要有操作权限。如果目录中有文件,使用unlink()函数将目录中的文件删除后,再删除目录。unlink()函数:删除指定文件,成功返回ture,否则返回false。例9-16,9.6 本章小结,为了保障大家对商城系统有一个更全面的认识,本章完成了商城后台管理系统中图书管理模块的开发,
14、这也是本书唯一介绍后台模块开发的一章。主要包括图书的添加、修改、删除和查询,在图书添加过程中我们学习了图片上传的方法,介绍了几个文件操作函数。文件操作是PHP中的一项重要内容,在技术拓展部分对此进行了详细介绍。,9.7 强化练习,一、简答题1简述后台图书管理模块的实现思路及过程。2简述文件上传的过程及涉及到的相关函数。3PHP中常用的文件、目录操作函数有哪些?,9.7 强化练习,二、操作题1在我们接收上传文件时,保存的文件名为原文件名,如果出现文件重名的情况文件就会被覆盖,如何解决这个问题呢?2完善商城后台管理系统,实现后台订单的管理,主要包括订单的查看,订单的查询,订单的修改和删除功能。3完善商城后台管理系统,增加后台用户管理模块,实现用户的查看、禁用和删除。,