《PHP动态网站开发项目教程》全套教学课件_第1页
《PHP动态网站开发项目教程》全套教学课件_第2页
《PHP动态网站开发项目教程》全套教学课件_第3页
《PHP动态网站开发项目教程》全套教学课件_第4页
《PHP动态网站开发项目教程》全套教学课件_第5页
已阅读5页,还剩689页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

开发环境的安装全套可编辑PPT课件问题引入PHP(PHP:HypertextPreprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。PHP同时支持面向对象和面向过程的开发,使用上非常灵活。163问题引入PHP是一种服务端语言,使用PHP编写的程序,不能直接在浏览器端运行,必须通过服务器解析后才能执行。因此,为了运行PHP程序,必须先安装PHP运行环境。问题引入PHP运行环境为分windows和linux两种环境。为了安装的简便,我们一般选择一键安装包进行安装,安装后,可以提供web服务、php解析、mysql数据库服务等。问题引入本课程的使用环境为windows,因此,下面介绍一下windows中如何安装运行环境。如果使用Linux操作系统,请参考网络上的资料进行安装。PHP开发环境配置PHP是一种服务器端的Web应用程序脚本语言,其开发环境主要包括:PHP解释器、Web服务器、数据库服务器及编辑器。PHP支持Windows和Linux等多种操作系统。PHP典型开发环境配置为Windows+IIS(或Apache)+PHP+MySQL,其中Linux系统为Linux+Apache+PHP+MySQL。采用PHP语言编写完成的程序,其扩展名是.php,这种文件是不能直接在浏览器中运行的,需要通过服务器的方式来进行运行。因此,在运行PHP文件之前,我们需要安装PHP开发环境,配置服务器。PHP开发环境配置PHP开发环境的配置相对比较复杂,如果是由用户自己下载PHP、Apache、MySQL来安装配置,会非常耗时,还容易出错。现在最简单的方式,是直接下载集成安装环境,会极大的提高我们的环境配置效率。目前流行的PHP集成运行环境软件包非常多,比如XAMPP、WAMPP等。在此,我们推荐大家使用“小皮面板”进行环境的搭建。PHP开发环境配置小皮面板官网地址是:/小皮面板是phpStudy的简称,系统提供了Linux和Windows两种版本,大家只需要根据自己的环境选择下载相应的版本即可。PHP开发环境配置访问网站:/,下载phpstudy客户端安装phpstudy图2打开下载好的phpstudy安装文件,根据安装向导,完成安装,然后启动客户端程序,如图2所示。安装phpstudy图3进入面板后,默认处于“首页”,在右边“套件”中点击Apache2.4.39和MySQL5.7.26后面的“启动”按钮。如果系统端口没有冲突,正常情况下,这两个运行环境将会启动成功,红色方块会变成蓝色箭头,如图3所示。(套件中显示的版本号,会随着系统版本发生变化

)测试运行环境运行环境正常启动后,在浏览器中输入:http://localhot/即可打开默认的首页。localhost是系统默认配置好的网站,其根目录是phpstudy安装目录下的www目录。如果要创建自己的网站,请在面板左侧点击“网站”,然后点击“创建新网站”,在域名中请输入自定义的域名,在根目录下选择我们的PHP程序所在的文件夹,如图4所示。点击“确认”即完成网站配置。图4配置网站在面板左侧点击“网站”,在此可以配置网站。域名中请输入自定义的域名,在根目录下选择我们的PHP程序所在的文件夹,根据需要,可以在PHP版本中切换版本(安装小皮以后,默认就是php7,如果要使用其他版本的php,请切换至“环境”面板,然后在php中选择所需版本进行安装。拓展我们安装的phpstudy软件,从套件面板可以看出,默认是包含了4个软件,如图5所示。其中Apache和Nginx是用于提供web服务的,我们在使用时,只需要启动其中之一即可。web服务默认的端口是80。FTP是用于提供FTP服务的,默认的端口是21,MySQL是提供数据库服务的,默认端口是3306。图5拓展如果系统中上述端口被占用,则无法启动相应的服务。解决办法是,可以更改上述服务所用的端口,比如,将web服务端口修改成8080。修改后,如果能正常启动,则访问时加上端口号即可,比如:http://localhost:8080拓展如果不想更换端口,可以将相应端口释放,也就是结束占用端口的软件。可以在面板左侧点击“设置”,然后在右侧“系统设置”中进行端口检测,一旦检测到端口被占用,将占用端口的进程关闭即可。总结PHP是一种服务端语言,必须安装PHP运行环境才能正常运行PHP文件。常见的PHP运行环境有很多种,推荐使用phpstudy,这个运行环境功能强大,免费,易于使用。谢谢编程环境的安装问题引入上一讲我们已经安装好了运行环境,那怎么样来编写PHP程序呢?PHP文件本质上是一种文本文件,理论上,任何可以编辑文本文件的工具都可以用来编写php程序。问题引入上一讲我们已经安装好了运行环境,那怎么样来编写PHP程序呢?PHP是一种非常流行的编程语言,全世界有数以亿计的程序员在使用PHP。因此,我们可以找到很多优秀的PHP编辑器。比较有名的有:NetBeans(免费版本)、PHPStorm(商业版本)、SublimeText3(商业版本)、VisualStudioCode(免费版本)。我们重点推荐PHPStorm,此编辑器功能强大,学生可以免费申请教育版认证。下载安装包PhpStorm是JetBrains公司开发的一款商业的PHP集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。访问网站:/phpstorm/,下载PHPStorm30天试用版,如图1所示。如何觉得软件好用,请购买正版,或者使用EDU邮箱申请教育版(相关方法,请查询网络)。图1开始使用PHPStorm打开下载好的PHPStorm安装文件,根据安装向导,完成安装,然后启动程序,如图2所示。图2开始使用PHPStorm配置网站。参考上一节所讲的环境配置,我们将指向E:/test(请提前在E盘创建test目录),如图3所示。创建好网站后,可以在浏览器中输入访问我们刚创建的网站。由于此目录内容为空,并无首页文件可默认显示,所以会出现403的错误提示,如图4所示。图4图3开始使用PHPStorm接下来,在图2中,点击open,打开E:\test目录,如图5所示。此时,左边的Project面板会自动显示test,这个代表我们启动了一个项目(推荐大家用项目的形式进行编辑,不要只打开一个文件,也就是要打开网站的根目录。)。在test上面点击鼠标右键,选择菜单New-PHPFile,可以创建一个新的PHP文件,文件名命名成index.php,如图6所示。图6图5开始使用PHPStorm创建好文件后,系统会自动打开此文件。在右边的编辑窗口中,按照图7所示输入内容。PHPStrom中打开的文件,会自动保存,不需要手动保存。小伙伴们,再也不用担心文件内容丢失了。图7开始使用PHPStorm此时,可以到浏览器中,输入域名:访问一下,应该可以查看到浏览器中显示的“HelloWord!”字样。在时常开发中,为了方便我们查看当前编辑文件的效果,我们还需要在PHPStorm中进行一些配置。点击菜单File-Settings-Build,Execution,Deployment-Deployment,在右边面板中点击+号,再点击Inplace,创建一个新的服务器,如图8所示。图8开始使用PHPStorm在NewServerName中给新建的服务器取一个名字,比如test,然后在右边的WebserverURL中输入“”即可,如图9所示。图9开始使用PHPStorm配置好服务器后,要运行文件,查看效果时,只需要将鼠标移至编辑窗口右边的浏览器图标并点击即可,如图10所示。图11是点击Chrome图标,点击后,系统会调用Chrome浏览器,并自动打开index.php文件进行显示。图10开始使用PHPStorm文件运行结果:图11总结PHP编辑器有很多,我们推荐PHPStorm,功能强大,非常方便。PHPStorm配置较为复杂,如果要使用一些高级功能,请参考网络资料。谢谢思政案例:关于盗版软件盗版软件盗版软件是非法制造或复制的软件。软件的版权,就相当于一个人的户口、身份证。它是软件所有人在完成软件设计后,向“国家版权局计算机软件登记”部门申请依法认证并核发的版权所有证明。一个公司销售的正版软件存在两种版权所有形式:一种是公司自主产品,版权所有者为该公司所有;一种是销售别人的产品,版权所有者是为该公司提供软件的公司或个人。如果销售给您软件的公司,不能提供以上合法的版权所有证明,那么,该产品就有盗版软件的嫌疑。盗版软件盗版软件侵犯的是软件的版权。盗版在绝大多数国家和地区,被定义为侵犯知识产权的违法行为,甚至构成犯罪,会受到所在国家的处罚。生产、使用、传播盗版软件的个人、公司、组织都有可能被告侵权。盗版软件案例据滁州日报社报道,未经著作权人许可,泉州一名男子擅自在网上发布封装的微软操作系统,供网站会员浏览、下载,从中获利14.77万元。随着设在全椒的网站服务器被公安机关查处,该男子归案,日前全椒县人民法院以犯侵犯著作权罪,判处其有期徒刑三年,宣告缓刑三年,并处罚金7万元。盗版软件案例赖某某是福建泉州人,大学毕业后在一所小学任教。生活中赖某某喜欢上网,在浏览一论坛时,无意间得知可以通过给一些网站做推广赚钱。所谓的网站推广,也就是通过做盗版软件,用户在下载安装时,将推广网站设为主页,从而获利。盗版软件案例2007年11月,赖某某以网名“拾零道人”,在“999宝藏网”注册,2012年11月成为该网站操作系统版块WindowsXP子版块版主。自2012年起,未经微软公司许可,赖某某在网站上发布封装的微软操作系统软件,供会员下载。截止到2013年6月,赖某某以“999宝藏网”为平台,累计发布封装微软WindowsXP、微软Windows7等侵权操作系统软件下载帖16个。此外,赖某某还在百度空间、网易博客上,开设个人网站,发布供用户下载的盗版微软操作系统软件。盗版软件案例后来,“999宝藏网”设在全椒的网站服务器被公安机关查获,赖某某浮出水面,经查,其非法获利14.77万余元。盗版软件案例归案后,赖某某供述了自己的犯罪事实,退出全部违法所得,向微软公司赔礼道歉后,取得微软公司的谅解。2015年11月4日,全椒县人民检察院以犯侵犯著作权罪,对赖某某提起公诉。盗版软件案例全椒县人民法院审理后认为,赖某某以营利为目的,未经著作权人许可,通过信息网络向公众传播他人计算机软件,其行为已构成侵犯著作权罪,情节特别严重。公诉机关指控被告人赖某某犯罪事实清楚,证据确实、充分,罪名成立。全椒县人民法院以犯侵犯著作权罪,判处赖某某有期徒刑三年,宣告缓刑三年,并处罚金7万元。对被告人赖某某违法所得14.77万元,予以追缴。盗版软件案例给我们的启示我们在浏览网页时,经常可以看到各种软件的下载。我们应该要有保护知识产权的良好意识,在下载之前,要看清楚软件的版权。千万不要随意下载盗版软件,以免侵权。我们要使用的PHP开发软件,PhpStorm,就是一个商业软件,我们可以下载试用版,免费试用30天。试用完成后,如果觉得好用,应该要购买授权,切不可去找什么所谓的破解版。使用盗版软件的风险但凡你从网上下载的什么绿色版、纯净版、破解版都属于盗版软件的范畴,那使用盗版软件有什么危害呢?1、盗版软件有可能让企业或个人电脑遭受病毒攻击,丧失信息安全保障。2、使用盗版软件,公司和个人均有法律风险,上市一票否决。使用盗版软件的风险但凡你从网上下载的什么绿色版、纯净版、破解版都属于盗版软件的范畴,那使用盗版软件有什么危害呢?3、盗版软件无法享受技术服务(升级、技术支持、培训)。4、使用盗版软件构成不正当竞争,面临支付损害赔偿、禁止销售及货物被扣押等风险。谢谢项目1会员管理系统项目介绍我们提供给大家的第一个项目是“会员管理系统”。会员管理系统是大多数项目的必备模块,本项目将制作一套完整的会员注册、登录、资料修改、管理员管理会员的系统。这个项目也是我们第二个项目的基础模块,在后面项目的学习中,都会融合这个项目的内容,以实现会员管理的功能。项目介绍本项目的基本功能如下:新会员注册己注册会员登录登录会员修改个人资料管理员登录管理员查看会员资料管理员修改会员资料(重置密码)管理员设置会员管理权限管理员删除会员项目介绍本项目的详细需求设计:会员注册时,需要填写用户名、密码、确认密码、信箱、性别、爱好。用户名长度6-18个字符,只能由英文字母、数字构成。密码长度6-10个字符,只能由英文字母、数字构成。信箱格式是email,要进行格式验证。项目介绍本项目的详细需求设计:性别用单选框。爱好用多选框。项目设计一个首页,首页做各个功能的导航条。会员注册成功与否,要给出反馈。注册成功后,跳转至登录页面。注册失败后,返回上一个页面。项目介绍本项目的详细需求设计:会员登录成功与否,要给出反馈。登录成功后,跳转至首页。登录失败后,返回上一个页面。用户密码在数据库中要用密文存放,不得直接存放明文。管理员登录和普通用户共享一个界面,登录成功后,系统自动判断用户类别。如果发现是管理员登录,则登录成功后,跳转至会员管理界面。项目介绍本项目的详细需求设计:所有管理功能相关的页面,均要在页面开始处判断管理员权限。管理员可以修改普通会员的资料,可以将普通会员设置成管理员,也可以取消管理员权限,可以删除会员。设置一个用户名为admin的超级管理员,管理员在进行设置权限和删除会员操作时,需将admin用户排除在外。项目展示本项目重点内容在PHP代码及功能展示上,所以界面做得很简单。在注册表单中,我们使用了单行文本框、单选按钮、多选按钮。同学们在学习的时候,也可以根据需要,添加其他种类的表单域。项目展示登录时,添加了一个验证码功能,防止机器人登录或者是网络攻击。后台管理中,管理员可以查看会员列表,可将某个会员设置或取消管理员,可以删除会员,可以修改会员资料。项目展示会员登录后,可以修改个人资料。是否修改密码,是单独设置了一个复选框。总结会员管理系统是多数项目的重要模块之一,通过学习本项目,我们可以学会phpStorm软件的使用、php基本编程语法、mysql数据库的创建、php连接mysql数据库并实现增删改查的操作等重要内容。谢谢思政案例:工匠精神PHP的发展历史我们的课程内容都是使用PHP语言来制作。PHP继承自一个老的工程,名叫PHP/FI。PHP/FI最早是在1995年由RasmusLerdorf创建,最初只是一套简单的Perl脚本,用来跟踪访问他主页的人们的信息。到1997年,PHP/FI2.0,也就是它的C语言实现的第二版在全世界已经有几千个用户(估计)和大约50,000个域名安装,大约是Internet所有域名的1%。但是那时只有几个人在为该工程撰写少量当代码,它仍然只是一个人的工程。PHP的发展历史PHP/FI2.0在经历了数个beta版本的发布后于1997年11月发布了官方正式版本。不久,PHP3.0的第一个alpha版本的发布,PHP从此走向了成功。PHP的发展历史1998年的冬天,PHP3.0官方发布不久,AndiGutmans和ZeevSuraski开始重新编写PHP代码。设计目标是增强复杂程序运行时的性能和PHP自身代码的模块性。PHP3.0的新功能和广泛的第三方数据库、API的支持使得这样程序的编写成为可能,但是PHP3.0没有高效处理如此复杂程序的能力。新的被称为“ZendEngine”(这是Zeev和Andi的缩写)的引擎,成功的实现了设计目标,并在1999年中期首次引入PHP。基于该引擎并结合了更多新功能的PHP4.0,在PHP3.0发布两年后,于2000年5月发布了官方正式版本。PHP的发展历史PHP5在长时间的开发及多个预发布版本后,于2004年7月发布正式版本。它的核心是Zend引擎2代,引入了新的对象模型和大量新功能。2015.12.3PHP7问世了,这是PHP的一次飞跃。PHP7修复了大量BUG,新增了功能和语法糖。这些改动涉及到了核心包、GD库、PDO、ZIP、ZLIB等熟悉和不熟悉的核心功能与扩展包。PHP7移除了已经被废弃的函数,如mysql_系列函数在PHP5.5被废弃,在PHP7被删除。PHP7的性能高于HHVM。并且是PHP5.6的两倍。很奇怪的是,没有PHP6。从PHP的发展历史谈“工匠精神”PHP的发展,和人的发展一样,都是一步一个脚印,慢慢走出来的,从中体现出了我们常说的“工匠精神”。工匠精神是一种职业精神,它是职业道德、职业能力、职业品质的体现,是从业者的一种职业价值取向和行为表现。我们每位同学,现在学习程序编写,在学好程序设计技术之后,走上工作岗位会成为程序员、软件系统运维人员、软件测试员、售前售后服务人员等。从PHP的发展历史谈“工匠精神”在这些职位岗位上,要发挥工匠精神,精益求精地将程序开发、系统运维、程序测试、需求分析及技术问题处理等工作内容完成好,保证软件系统运行时正确、稳定,保证客户的需求被精确采集和纳入软件开发计划,保证软件运行时遇到问题能被及时解决。从PHP的发展历史谈“工匠精神”同学们在学习时,要将知识夯实、精技强能,方能在今后工作中本领过硬,不出纰漏,工作成果令用户满意。大家要认识到,作为职业人,其专注、敬业、责任担当对完成好本职工作,进而促进软件行业整体的高水平、优质化发展具有重要意义。总结会员管理系统是多数项目的重要模块之一,通过学习本项目,我们可以学会phpStorm软件的使用、php基本编程语法、mysql数据库的创建、php连接mysql数据库并实现增删改查的操作等重要内容。谢谢项目1会员管理系统任务1首页制作创建网站大家准备好了吗?我们将从零开始,带领大家完成第一个项目的制作。首先在E盘创建一个目录,名为member。然后在phpstudy中配置一个网站,域名为“member”。打开项目打开PhpStorm,在启动界面中选择“open”,打开E:/member目录。创建首页index.php在项目根目录member上点击鼠标右键,在弹出菜单中选New-PHPFile,创建index.php文件。创建文件后,系统会自动打开此文件。请删除文件中己有的所有内容,然后在文件中输入html:5,再按下tab键,系统会自动创建html5格式文档基础标签代码。将title修改为“会员管理系统”,然后在页面中创建一个标题和五个导航菜单,并添加相应的CSS样式。下面提供相关代码:创建首页index.php预览效果此时,我们可以直接打开浏览器,然后在地址栏中手动输入http://member以访问我们的会员管理系统首页。预览效果如果每次都直接在浏览器中去输入文件URL访问内容,显得不太方便。我们可以在PhpStorm中部署一下项目,然后就可以使用PhpSotrm自动打开浏览器访问我们的php文件。在PhpStorm中,打开菜单File-Settings,然后找到Build,Execution,Deployment-Deployment选项。项目部署项目部署然后在右边点击+,选择Inplace,然后输入一个服务器的名字,这个名字可以任意取,我们就输入member即可创建好服务器后,我们在右侧的WebserverURL中,输入我们在小皮面板中创建好的域名即可项目部署项目部署至此,我们就部署好了项目。接下来,只需要在PhpStorm中,点击文件编程器右边的浏览器图标,系统就会自动打开当前文件进行页面效果查看。总结本次课程,我们在phpstudy中创建了会员管理系统网站,然后在PhpStorm中创建了首页(主要是导航栏),并完成了内容的制作。谢谢项目1会员管理系统任务2注册页面前端制作创建会员注册页面singup.php在index.php文件上点击鼠标右键,然后选择copy,然后在member目录上点击鼠标右键,选择paste,在弹出的窗口中输入新的文件名:singup,点击确认即生成singup.php文件。复制文件的目的,是因为首页中创建的这个导航链接,我们在注册页面中也需要。复制好文件后,我们需要把导航栏中的当前栏目修改一下,将“首页”链接上的current样式删除,然后在“会员注册”链接上添加current的样式。创建会员注册页面singup.php接下来,在页面中创建一个注册表单,代码如右所示。在注册页面中,我们设计了用户名(文本框)、密码(文本框)、重复密码(文本框)、信箱(文本框)、性别(单选按钮)、爱好(多选按钮)共6个控件。大家在做的时候,也可以自己再设置一些其他类型的控件。创建会员注册页面singup.php需要注意的是,在制作表单时,需要添加在form标签中设置action属性,表示点击“提交”按钮后,将各项数据发送至哪个网页文件进行处理。我们这里设置的是postReg.php,表示点击“提交”按钮后,会将用户填写的各项数据提交至此文件进行下一步的处理。method属性指定了提交文件的方法,可以设置get和post两种方式。下面简单说一下get和post的区别。创建会员注册页面singup.phpGET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间用&相连,如EditPosts.php?name=boKeYuan&id=123456;POST方法是把提交的数据放在HTTP包的Body中。GET提交的数据大小有限制(注意:HttpGet方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制,这个限制是特定的浏览器及服务器对它的限制);POST方法提交的数据没有限制。创建会员注册页面singup.php对参数的数据类型,GET只接受ASCII字符;而POST没有限制。GET请求参数会被完整保留在浏览器历史记录里;而POST中的参数不会被保留。GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。创建会员注册页面singup.php对于表单中的控件而言,每一个控件需要设置一个name属性,这个属性在用于后端文件读取其数据。其中每一组单选按钮和每一组多选按钮,其name属性应该保持一致。对于单选、多选、下拉等不能由用户手动输入结果的控件,还需要设置value属性,这个属性的值就是后端文件最终读取到的值。特别注意,由于多选按钮可以选多个值,因此,其name属性要在正常的名字后面添加一对中括号,表示其类型是一个数组,这样才能读取到多个选项的值。预览注册表单打开浏览器预览一下效果总结本次课程,我们完成了会员注册页面前端表单的制作。这些内容应该是我们原来学过的内容,我们做了一个复习,在下次课程中,我们使用php来读取表单的值,并将前端页面填写的值在后端页面中显示出来。谢谢项目1会员管理系统任务3后端数据获取表单设置在注册页面中点击“提交”按钮后,系统会自动跳转至action指定的后端页面。在后端页面中,我们可以使用$_GET或$_POST全局数组来获取前端表单提交的数据。至于到底使用哪一个方式来获取数据,要根据前端表单采用的数据提交方式来确定。如果前端使用get方式提交数据,则使用$_GET。如果前端使用post方式提交数据,则使用$_POST。当然,我们也可以使用$_REQUEST全局数组来读取前端表单提交的数据,这个数据就不区分get和post了,均可以读取。为了在后端能获取到前端表单填写的值,我们必须对表单域进行一些设置。表单设置每一个表单域应该添加一个name属性。同一组单选框(或复选框),应该添加一个相同的name属性。对于单选框、复选框,应该要添加一个value属性。对于复选框,name属性应该设置成一个数据的形式。点击表单中的提交按钮,系统会跳转到form标签中action属性所指定的页面去,同时会携带相应的前端数据。携带的方式有两种,通过form标签的method属性来设置,可以是get和post两种。表单设置get和post的区别:Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。表单设置get和post的区别:Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。但Get执行效率比Post高。Get是form提交的默认方法。PHP获取表单数据在注册页面中点击“提交”按钮后,系统会自动跳转至action指定的后端页面。在后端页面中,我们可以使用$_GET或$_POST全局数组来获取前端表单提交的数据。PHP获取表单数据至于到底使用哪一个方式来获取数据,要根据前端表单采用的数据提交方式来确定。如果前端使用get方式提交数据,则使用$_GET。如果前端使用post方式提交数据,则使用$_POST。当然,我们也可以使用$_REQUEST全局数组来读取前端表单提交的数据,这个数据就不区分get和post了,均可以读取。PHP获取表单数据在项目中新建文件postReg.php文件,然后在其中输入以下代码进行后端数据读取测试。PHP获取表单数据运行singup.php文件,然后在表单中输入各项数据,再点击“提交”按钮,进入后端页面,查看运行的结果PHP获取表单数据在PHP中,预定义的$_POST变量用于收集来自method="post"的表单中的值,其类型是一个数组。从带有POST方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。然而,在默认情况下,POST方法的发送信息的量最大值为8MB(可通过设置php.ini文件中的post_max_size进行更改)。还记得我们在前端表单中给每一个控件设置的name属性吧。在后端文件中,我们使用$_POST['username']即可读取到前端表单中name为username的控件的值。PHP获取表单数据由于多选按钮是可以选多个值的,因此,前端表单文件中使用了fav[]这样一个数组形式的名字,在后端使用$_POST['fav']读取到的自然也就是一个数组。在PHP中,我们可以使用echo函数输出一个变量的值。但对于数组而言,无法直接输出,所以我们使用了一个函数implode来进行处理。implode()函数返回一个由数组元素组合成的字符串,其第一个参数规定数组元素之间放置的内容,默认是""(空字符串),我们这里使用了逗号来连接。第二个参数就是具体的需要处理的数组。PHP获取表单数据在前端表单中的性别控件,选项“男”,我们设置的value是1,选项“女”,我们设置的是0,因此,在后端文件中,读取到的性别,其值也就是1和0。但如果直接输出1和0,就不对了,我们需要把1和0转换成男和女来输出。在这里,我们使用了一个?表达式来完成操作。?表达式相当于一个if...esle的双分支语句,如果?前面的表达式为true,则返回?后面的值,否则,返回:后面的值。在我们这里,就是判断$sex是否等于1,如果等于1,则输出“男”,否则,输出“女”。PHP获取表单数据在echo函数中,如果要输出字符串,字直接写在一对引号或者一对单引号中即可,这里的字符串就会原样输出。如果要输出变量,可以直接把变量放在双引号中即可。但是,如果在单引号中直接添加变量,此变量不会被解析,将会在浏览器中直接显示变量的名字本身。此时,可以使用连接符来输出,比如:PHP获取表单数据如果要输出html标签,请直接在字符串中正常书写即可,比如,我们在echo函数中添加了<br>,意思就是输出一个换行符号。总结本次课程,我们学习了使用$_POST读取前端表单提交的数据的方法,还学习了一个数组转字符串的函数implode的使用。同时,我们也了解了输出语句的使用,字符串和变量的混合输出的方法,还了解到了问号表达式的使用。谢谢项目1会员管理系统任务4创建数据库和数据表使用phpMyAdmin创建数据库和数据表在小皮面板中开启mysql数据库服务。进入“数据库”面板,可以查看数据库管理员帐号和密码。也可以点击“+创建数据库”直接创建新的数据库,并设置访问的用户名和密码。管理员帐号默认是root,密码也是root,此帐号可以访问和管理当前服务器中的所有数据库。使用phpMyAdmin创建数据库和数据表进入“软件管理”面板,点击上方的“工具”栏目,再点击下方的“数据库工具(客户端)”,可以安装第三方工具软件,用以管理mysql数据库。除了使用工具软件来管理mysql数据库,我们更常用的是使用web工具来管理数据库,这样更简便。使用phpMyAdmin创建数据库和数据表在上方工具栏中点击“网站程序”,再点击下方的“数据库工具(web)”,可以看到有一个phpMyAdmin的工具,这个是纯网页版的mysql数据库管理工具,点击安装即可。安装时,需要选择安装的位置,一般我们选择默认的localhost网站即可。使用phpMyAdmin创建数据库和数据表安装好phpMyAdmin以后,点击“管理”,即可在网页中打开phpMyAdmin,如图2.5.3所示。使用phpMyAdmin创建数据库和数据表有了数据库以后,接下来就是创建数据表info,并在info中创建7个数据字段,分别是id(ID字段,用于唯一标识每一行数据)、username(用户名)、pw(密码)、email(邮箱)、sex(性别)、fav(爱好)、createTime(创建时间)使用phpMyAdmin创建数据库和数据表下面对每一个字段进行说明。id:在创建表字段时,每一张表都要求要有一个id字段,这是表的主键,用于标识每一行数据。其类型为INT,并勾选后面的“A_I”标识列,将其设置成自增(AUTO_INCREMENT)字段。这个字段在以后使用的过程中,创建记录时,不需要提供值,系统会自动按照顺序从1开始,依次提供值。使用phpMyAdmin创建数据库和数据表下面对每一个字段进行说明。username:VARCHAR类型,长度为50,表示最长长度为50个字符的可变字符。意思是,如果只输入1个字符,则占1个长度。最多可以占用50个长度。pw:CHAR类型,长度为32。我们在数据库中保存密码时,不能直接保存明文,需要加密后保存密文。我们一般使用md5方式进行加密,常用的md5加密是32字节的固定长度,因此,我们选择CHAR类型,长度固定为32字节。使用phpMyAdmin创建数据库和数据表下面对每一个字段进行说明。email:VARCHAR类型,长度256。sex:TINYINT类型,长度1。fav:VARCHAR类型,长度300。createTime:INT类型。创建时间,可以选择DATETIME类型,也可以选择INT类型。在DATETIME类型中,将直接保存年月日时分秒类型的时间。在INT类型中,我们保存的是时间戳。时间戳是一个10位数的整型数据,具体是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。总结本次课程,我们学习了如何安装phpMyAdmin,学习了如何创建数据库和数据表,了解了几种常用字段类型的含义。创建好了数据库,下一次课,我们就可以开始使用php来连接数据库,并将数据写入数据库。谢谢项目1会员管理系统任务5将注册信息写入数据库php连接mysql数据库并写入数据我们把php对数据库的操作,归纳成了几个步骤。同学们只要按照这几个步骤来操作,就一定能完成。第一步,连接数据库服务器。我们使用的是mysqli_connect(host,username,password,dbname,port,socket)函数,该函数将打开一个到MySQL服务器的新的连接。php连接mysql数据库并写入数据第二步,设置字符集。我们使用了mysqli_query(connection,query,resultmode)函数,这个函数的作用是执行针对数据库的查询。第三步,设SQL语句。所谓的SQL,就是结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。第四步,运行指定的SQL语句。这一步和第二步类似,都是使用了mysqli_query函数。在这里,我们利用了他的返回值。如果系统成功执行了我们给定的SQL语句,$result将为真,否则为假。最后判断一下这个真假,就知道是否成功插入了新的记录。运行程序,根据返回值真假提示注册是否成功。php连接mysql数据库并写入数据如果出错,请根据出错提示解决问题。比如,以下错误,就是mysqli_connect函数使用的mysql数据库的密码出错。php连接mysql数据库并写入数据如果没有错误,则弹窗提示注册成功。php连接mysql数据库并写入数据进入数据库中,查看新增记录。总结本次课程,我们学习了如何使用php连接mysql数据库,并使用insertinto语句将信息写入数据库。谢谢项目1会员管理系统任务6判断用户名是否被占用检查用户名是否被占用用户表里的每一条记录,也就是每一个用户,他的用户名应该是唯一的。因此,在写入数据库之前,应该要检查一下当前用户名是否在数据库中已经存在了。那如何判断用户名是否被占用了呢?我们可以使用SQL语句来查询一下当前数据表中,已经有哪些用户名,或者说筛选一下数据表记录,看是否有当前用户名。我们使用了SQL语言中的select关键词来查询数据记录。SELECT语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。进行必要的数据验证在用户表中,用户名是必填字段,因此,我们在写入数据库之前,应该做一个验证,确定用户名有内容。两次密码是否相同,也是必须要验证的。进行必要的数据验证当我们在PhpStorm中使用了SQL语句后,我们会发现编辑器中SQL语句上有黄色底纹。同时,把鼠标移至底纹上,系统会出现一些提示信息。进行必要的数据验证这个提示的意思就是说没有配置数据源,也就是IDE没有配置数据库。同时,也提示我们没有配置SQLdialect,就是PhpStorm不知道我们用的是哪个数据库SQL,无法给我们智能进行代码提示。

点击提示左下角的“Changedialectto...”,将GlobalSQLDialect和ProjectSQLDialect均配置成MySQL即可。进行必要的数据验证配置好SQLDialect后,我们再次将鼠标移至SQL语句上,我们发现系统出现了Configuredatasource的提示。点击Configuredatasource,进入数据源配置界面。先点击左上角的+号,添加MySQL驱动为当前驱动,在右侧区域输入用户名、密码、数据库名称。进行必要的数据验证配置好上述内容后,在PhpStorm的右则,将出现一个Database的标签,点击可以展开,在其中可以看到当前我们所选的member数据库的详细情况。进行必要的数据验证总结本次课程,我们学习了如何判断用户名和密码是否填写,以及密码和确认密码是否相同,同时,也了解了如何检查在数据表中是否有特定的记录存在。谢谢项目1会员管理系统任务7表单验证前端表单验证的重要性我们在任务6中,简单判断了一下用户名是否填写,并判断了密码和确认密码是否相同。在实际项目开发中,这远远不够。可以这样讲,任何表单,在数据提交到后端之前,都应该进行数据的验证,确保数据的合法有效。前端表单验证的重要性数据的验证,需要在前端和后端同时进行,这样做的目的是为了保证系统的安全,减轻服务器压力。比如,用户明明没有填写用户名,还是去点击提交按钮,这显然是没有意义的。如果在前端不进行判断和处理,这一次无效的交互,仍然要占用服务器的时间。另外,我们后端主要是使用SQL语句和数据库进行交互,如果前端不加以限制,可能会输入一些危险字符,引入SQL注入风险。关于SQL注入的相关内容,大家可以参阅以下链接:表单验证的内容在前端进行数据验证,我们一般是使用javaScript来进行数据的验证。为了避免前端绕过javaScript,在后端接收到数据后,还需要再一次的进行验证。在会员注册表单中,需要验证的内容有:用户名:必填,只能是大小写字符、数字,长度为3-10。密码:必填,只能是大小写字符、数字、_、*,长度为6-10。确认密码:必填,且必须和密码保持一致。信箱:格式必须正确,可以不填。爱好:可以不选。表单验证的方法在单击“提交”按钮时,要拦截系统提交,先验证数据,合格后再提交表单。只需要在form标签中添加一个onsubmit的事件即可实现提交拦截:表单验证的方法当我们点击提交按钮时,会触发提交事件,系统会首先跳转至javaScript方法check,如果check返回为真,则系统继续提交,如果返回为假,则阻止提交。具体的check方法代码如下:前端表单验证的具体代码前端表单验证的具体代码首先,我们用document.getElementsByName读取名字为'username'的元素,这样就得到一个数组。但我们整个页面中,只有一个username的元素,因此,我们取此数组的第一个元素,然后读取其value属性即可得到用户输入的用户名,再使用trim方法,去除前面的空格。其他几个数据的读取方式也就是一样的原理。接下来,我们使用了正则表达式来判断数据的内容。前端表单验证的具体代码用户名的验证:/^[a-zA-Z0-9]{3,10}$/,表示只允许大写和小写字母、数字,长度范围是3-10。使用test方法进行正则测试,如果返回真,则说明测试通过。如果返回假,则说明测试有误,此时就会弹窗提示错误,并返回false,阻止表单的自动提交。前端表单验证的具体代码密码的验证:/^[a-zA-Z0-9_*]{6,10}$/,表示只允许大小写字母、数字和*,长度范围是6-10。邮箱的验证:/^[a-zA-Z0-9_\-]+@([a-zA-Z0-9]+\.)+(com|cn|net|org)$/,这个内容复杂一点,大家可以自己理解一下。后端表单验证的具体代码在后端,一般使用php中的内置函数和正则表达式来进行表单数据的验证。总结本次课程,我们学习了如何使用正则表达式在前端js中以及后端php中判断表单数据内容填写是否满足指定的内容。这是一项非常重要的内容,所有要写入数据库的内容都应该进行数据合法性以及完整性的验证。谢谢思政案例:世界十大黑客世界十大黑客不知道同学们是否有了解“世界十大黑客”的故事。世界十大黑客指的是世界上最顶尖的电脑高手,包括凯文、丹尼斯、李纳斯、沃兹尼亚克、汤普森、理查德、德拉浦、雷蒙德、卡普尔、莫里斯等。黑客一词来源于英文hacker,原指醉心于计算机技术,水平高超的电脑专家,尤其是程序设计人员,早期在美国的电脑界是带有褒义的。但在媒体报导中,黑客一词往往指那些“软件骇客”(softwarecracker)。世界十大黑客关于世界十大黑客的详情,大家可以参阅以下网址:/item/%E4%B8%96%E7%95%8C%E5%8D%81%E5%A4%A7%E9%BB%91%E5%AE%A2/4136968?fr=aladdin世界十大黑客给我们的警示乔纳森詹姆斯,因为他的年龄原因,只遭受了轻微的惩罚,他只被判6个月的监禁。JonPaulOson,于2008年被正式指控,将遭受5年监禁,并支付144,358.83美元给CCC和264,979.00美元给NCHS。MaksymYastremskiy(又名Maksik),2007年7月被土耳其当局逮捕后,Maksik被控黑掉了12家土耳其银行并处以30年的监禁,以及23200美元的高额罚金。世界十大黑客给我们的警示凯文米特尼克(KevinMitnick),他入侵了诺基亚、Sun和摩托罗拉公司的系统。当局最终在1995年逮捕了米特尼克,那时他已经潜逃了两年,并用朋友给他的一个号码监视对他之前入侵DEC的定罪。米特尼克遭受了46个月的监禁,以及为避免之前假释的另外22个月刑罚。世界十大黑客给我们的警示通过上述部分黑客的结局,应该引起我们的高度重视。我们从事的是软件编程及其相关工作,同学们一定要有网络信息安全的意识,每位同学都要做到以下几点:世界十大黑客给我们的警示一、树立正确的网络使用意识,不上不正当、非法运营网站,为构建健康良好的网络环境贡献自己的一份力量。二、牢牢树立信息安全意识,知道怎样安全上网,怎样才能保护自己的信息,以免让不法分子有机可乘。世界十大黑客给我们的警示三、培养树立代大学生应有的判断能力。对于网络上的某些反动言论及低俗信息,要决反对,及时举报,不要为不法分子的恶劣行径推波助澜。四、用自己的实际行动去带动身边的人,让更多人注意到网络安全、信息安全的重要性,并为此而努力。五、正确使用微博、微信等及社交平台,传播积极思想。谢谢项目1会员管理系统任务8用户登录登录前端表单制作在member目录上右击,创建新文件:login.php。登录页面和注册页面的静态内容有一定的相似,因此,我们可以直接把singup.php文件的内容复制过来,然后进行修改。首先把导航栏中的当前栏目修改一下。在表单中,只保留用户名和密码。在javaScript函数check中,只保留用户名和密码的相关验证内容。登录前端表单制作接下来,在member目录上右击,创建新文件postLogin.php。然后修改form标签中的action属性,改成postLogin.php。接下来制作后端文件。登录具体代码我们在前面制作会员注册时,已经熟悉了php操作数据库的四个步骤。事实上,只要是使用php操作数据库,都需要这几个步骤。其中第一步和第二步,对每一次操作而言,内容都是一样的,需要重复在很多个文件中书写。为了简便,我们可以把这一段内容单独放在一个文件中,然后在其他文件中进行引用。这样既可以简化代码,又可以在需要修改某些内容(比如,修改数据库的用户名和密码)时,直接改一个地方,即可实现整个项目对应的内容都自动修改。登录具体代码在member目录上右击,创建新的php文件conn.php。然后回到postReg.php文件,将其中的第一步和第二步代码剪切至conn.php中:登录具体代码然后再次回到postReg.php中,在刚才剪切代码的位置,添加如下代码:include函数的作用是包含(导入)参数中所指定的文件内容。我们推荐使用include_once函数,这样可以保证在同一个页面只导入一次,避免误操作重复导入。登录具体代码php中的包含文件,除了可以使用include以外,还可以使用require。他们基本作用是一样的,区别在于对错误的处理方式不同。require()语句在遇到包含文件不存在时,或是出错的时候,就会停止即行程序,并报错。include()则会忽略错误,继续即行。同样的,也有require_once方法,可以保证同一个页面只导入一次文件。同样的,在postLogin.php中,首先包含conn.php文件。这样就相当于已经有数据库操作的第一步和第二步了。登录具体代码接下来,我们的任务就是读取前端表单数据,并进行必要的验证。然后通过SQL查询,在数据表中查询指定的用户名和密码是否存在。如果存在,则用户登录成功,否则登录失败。总结本次课程,我们主要学习了如何实现会员登录。判断用户成功登录的依据是,在数据表中查询指定的用户名和密码,如果能查询到记录,说明登录成功,查询不到,则说明登录失败,可能是不存在的用户名、错误的密码等。谢谢项目1会员管理系统任务9session的使用关于sessionPHP中的session变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。Session变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的。关于session您在计算机上操作某个应用程序时,您打开它,做些更改,然后关闭它,这很像一次对话(Session)。计算机知道您是谁,它清楚您在何时打开和关闭应用程序。然而,在因特网上问题出现了:由于HTTP地址无法保持状态,Web服务器并不知道您是谁以及您做了什么。关于sessionPHPsession解决了这个问题,它通过在服务器上存储用户信息以便随后使用(比如用户名称、购买商品等)。然而,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久存储信息,可以把数据存储在数据库中。关于sessionsession的工作机制是:为每个访客创建一个唯一的id(UID),并基于这个UID来存储变量。UID存储在cookie中,或者通过URL进行传导。在您把用户信息存储到PHPsession中之前,首先必须启动会话。开启会话的方式时,使用代码session_start(),只是需要注意,session_start()函数必须位于任何html代码输出之前,一般来说,我们可以把它放在程序的第一行。关于session存储和取回session变量的正确方法是使用PHP$_SESSION变量。如果您希望删除某些session数据,可以使用unset()或session_destroy()函数。unset()函数用于释放指定的session变量,而session_destroy()可以删除所有的session。关于session回到我们的postLogin文件,当我们登录成功后,就需要写入一个session标志,用以告诉各个页面,现在处于登录状态。因为session是可以跨页面使用的,因此,我们在postLogin页面写入的session,可以在当前网站下的任何页面进行读取。任何需要判断登录权限的地方,只需要读取特定的session即可知道当前是否处于登录状态。因为session是有生命周期的,长时间不操作电脑,session将会过期,过期的session会自动删除。session的默认生命周期是1440秒,可以在php.ini配置文件中,或者直接在php文件中,重新设置生命周期。关于这一部分内容,大家

可以自行查阅相关资料。关于session以下是postLogin.php文件的完整代码。我们在页面开始的地方开启了会话,在用户登录成功后,生成了一个session变量$_SESSION['loggedUsername'],其值就是当前的用户名。如果登录失败,则使用unset删除$_SESSION['loggedUsername']。postLogin.php代码:登录中的session代码<?phpsession_start();//这里省略其他代码include_once"conn.php";$sql="select*fromuserinfowhereusername='$username'andpw='".md5($pw)."'";$result=mysqli_query($conn,$sql);//返回一个记录集);if(!$num){unset($_SESSION['loggedUsername'];echo"<script>alert('登录失败,错误的用户名或密码');history.back();</script>";}else{$_SESSION['loggedUsername']=$username;echo"<script>alert('登录成功');location.href='index.php';</script>";}总结本次课程,我们学习了session的基本知识。session在网站中广泛使用,常用于登录判断、权限判断等。$_SESSION是全局数组,可以跨网页使用。谢谢项目1会员管理系统任务10注销登录在首页显示登录信息登录成功后,我们会在首页显示登录者的信息,即用户名,同时显示“注销登录”链接。点击“注销登录”链接,跳转至logout.php,销毁所有session后跳转至首页。我们已经发现,页面顶部的导航栏,会在每一个页面显示,这些代码在每一个文件中都重复了一遍,借鉴我们做conn.php的经验,我们也可以用同样的方法,将导航栏放到一个单独的文件中去,以优化代码。在首页显示登录信息在member目录右击,创建新文件nav.php,并输入相应的代码。修改index.php、singup.php、login.php文件,在原来导航栏的位置用include_once包含nav.php文件。需要注意的是,我们在nav.php中使用了session,因此,在其他文件中引用此文件之前,都需要先开启session会话。相关代码代码分析可以看到,我们在导航栏中添加了当前登录者的用户名和注销登录的链接。我们使用了一个函数isset,这个函数用于判断一个变量是否存在。If(isset($_SESSION['loggedUsername'])&&$_SESSION['loggedUsername']<>'')的作用是,首先判断$_SESSION['loggedUsername']是否存在,如果不存在,直接为false。如果存在,再判断$_SESSION['loggedUsername']是否为空。登录成功后,$_SESSION['loggedUsername']中保存的是当前登录者的用户名。如果这两个条件均为true,则if判断结果为真,显示当前登录者的用户名和注销登录的链接。代码分析将导航栏放至nav.php中,还需要解决当前栏目高亮的问题。我们使用的方法是,在nav.php文件中的各个导航链接上,添加一个id参数,当其他页面包含了nav.php文件后,在点击链接跳转时,会同时这个id参数,然后我们在nav.php中读取这个参数,根据参数的值,来决定给哪一个栏目添加当前栏目指示。这里就涉及到php各个页面之间参数传递的方法。基本的方式就是在url地址后面添加参数,使用?进行地址和参数的分隔,然后跟上参数名,用等号连接具体的值,如果有多个参数,使用&连接即可。运行效果总结本次课程,我们学习了注销登录的方法。注销登录和登录以后的操作刚好相反。登录成功以后,我们是写了一个session标志,用以标识登录成功。注销则是将所有session销毁,并使用header方法跳转页面。同时,我们还学习了如何通过url地址栏传参数。谢谢项目1会员管理系统任务11会员资料修改在表单中显示已有资料查看一下我们做好的会员登录功能,当登录成功后,我们保存了登录会话标志,然后就没有做其他操作了,页面也还是继续停留在登录界面。此时,我们应该添加一个跳转功能,要么跳转至首页,要么跳转至修改个人资料页面。我们把postLogin.php文件修改一下。登录成功后,跳转至index.php,登录失败后,直接返回上一个页面。在表单中显示已有资料我们在nav.php中,已经给个人资料修改链接添加了目标页面modify.php,因此,我们先在member项目中新建文件modify.php。这个文件的内容和singup.php有很多是相似的,可以考虑直接复制过来进行修改。在修改资料时,首先需要在表单中显示己有的各项资料。修改资料后,点击提交按钮,将各项数据提交至后台,我们可以使用SQL中的update语句来更新表记录。在表单中显示已有资料修改资料时,要注意密码的处理方式。可以考虑两种方式:一是,密码默认留空,如果要修改,就填写新的密码和确认密码,不填就不修改密码。二是,在密码后面添加一个复选框,勾选代表要修改密码,不勾选代表不修改密码。修改资料时,还要注意检查当前用户是否登录。只有登录以后才能修改资料。同时,一般来说,用户名是不允许修改的。前端代码前端代码前端代码在modifyh.php页面中,我们使用到了session,因此,我们在页面最开始的地方添加了session_start()以开启会话。然后,我们需要判断当前用户是否登录。如果没有登录,那么修改资料是无意义的。我们先判断$_SESSION['loggedUsername']是否存在,如果不存在,肯定说明未登录。如果$_SESSION['loggedUsername']存在,我们就判断其值是否为空。如果为空,也说明登录无效。如果未登录,则弹窗提示,并跳转至登录界面。由于在多个页面均需要判断是否登录,因此,我们也可以把这一段代码单独放至一个

文件中,然后在需要的地方包含即可。前端代码接下来,我们使用include_once‘nav.php‘;和include_once’conn.php‘;分别包含了导航栏和数据库连接文件。然后,我们使用$sql=“select*frominfowhereusername=’”.$_SESSION[’loggedUsername‘].“‘”;语句来查询当前登录者的用户名是否存在,这样是为了保证当前用户存在,保证后续操作可靠(这只是为了增加操作的严谨性,比如,用户刚登录,就被管理员删除了?)。前端代码如果当前用户不存在,则显示提示信息,然后中止程序的执行。如果用户存在,则使用mysqli_fetch_array(result,resulttype);函数从结果集中取出一行数据并存入$info数组中。这个数据,可以是关联数组,或数字数组,或二者兼有。前端代码其中的爱好需要单独处理一下,因为数据表中的存放的爱好是用逗号将多个值拼接起来的字符串。在前端界面中,为了能自动在相应的爱好前面自动勾选,需要将拼接好的字符串重新拆分成数组。我们使用的函数是explode(separator,string,limit),explode()函数使用一个字符串分割另一个字符串,并返回由字符串组成的数组。接下来就是各项信息在表单中的显示了。用户名和信箱很简单,只需要把值直接显示在value中即可。因为用户名是唯一的,因此,不让修改,我们给用户名添加了一个readonly的属性。前端代码密码和确认密码,我们采用的方式是,如果不修改,直接留空。对于单选框,直接判断当前值的真假(数据库中是0和1)即可。多选要稍微麻烦一点,我们使用了函数in_array。in_array()函数搜索数组中是否存在指定的值。后端代码后端代码总结本次课程,我们学习了如何修改会员资料,重点内容是读出己有内容并在表单中进行显示。同时,还学习了使用update关键词更新表记录的方法。谢谢项目1会员管理系统任务12管理员登录如何在数据表中标识管理员前面我们已经做好了普通会员的登录。要实现管理员的登录,首先需要在数据表中标识管理员,也就是,怎么确定哪些人员是管理员。普遍的实现方式有两种。一是,单独建立一张数据表,用来存放管理员。二是,在普通会员表里,增加一列,用来标识是否是管理员。如何在数据表中标识管理员对于第一种方式,在登录时,需要单独做一个管理员登录的页面,或者在普通会员登录的时候,添加一个复选框,用来标识是否是管理员登录。如果是管理员登录,则后端在判断用户名和密码的时候,就到管理员数据表中去查询。对于第二种方式,和普通会员登录完全一样,只是登录成功后,再判断一下管理员标识列,以判断当前用户是不是管理员。如何在数据表中标识管理员管理员登录成功后,单独写一个session标识符,用以标识管理员登录。由于session的全局性,我们在任意页面,要判断是否是管理员登录,只需要检查一下这个session标识符即可。如何在数据表中标识管理员我们前面做好的数据库,里面并无管理员标识列。打开phpMyAdmin,找到我们的数据表info,点击“结构”,在下面的“添加1个字段”后面点击“执行”,然后就和创建数据表时一样,正常添加列即可。我们添加的列名是admin,类型可以选择TINYINT,长度为1,默认值设置成0(在默认值中,选择“定义”,然后输入0即可),表示不是管理员。如果是管理员,这一列的值自然就等于1。最后点击“保存”完成添加。后端代码当登录成功后,我们使用mysqli_fetch_array函数从结果集中读取一行数据,然后判断一下这行数据中,admin这一列的值。如果值为1,则在php中用if进行逻辑值判断就是真,我们就写一个session变量$_SESSION['isAdmin'],赋值为1,反之,赋值为0。后端代码如果登录失败,则使用unset函数删除$_SESSION['isAdmin']和$_SESSION['loggedUsername']。运行效果总结本次课程,我们学习了管理员的登录,通过登录成功后,判断管理员标识列来判断是不是管理员。如果是管理员,通过session来写入标识。谢谢项目1会员管理系统任务13管理员查看所有会员循环输出数据表记录管理员登录后,可以进行后台管理。在后台管理中,首先是查看所有会员的列表。查询数据库以后,只需要从记录集中循环读取内容,并依次输出即可。所有管理员页面,都必须在文件中添加权限判断的内容,以确保是管理员登录后才能查看此页面。借鉴我们前面做数据库连接文件的方法,接下来,我们单独新建一个checkAdmin.php的文件,通过这个文件来判断是否有管理员权限。循环输出数据表记录接下来,创建admin.php文件。本文件的完整代码如下:循环输出数据表记录接下来,创建admin.php文件。本文件的完整代码如下:代码分析首先,我们在文件开始的地方,包含了checkAdmin.php文件,用于判断当前是否处于管理员登录状态。如果状态无效,系统会自动跳转至登录界面。接下来,我们通过$sql="select*frominfoorderbyiddesc";进行数据表查询,查询以后,通过mysqli_query函数得到记录集,再通过while循环,每次取一条数据,并输出各列内容。在列表中显示有一个序号,我们是做了一个$i的变量,每次循环后,给变量加1,然后依次输出。代码分析注意,这个序号不要用数据表记录中的id列,因为id可能不会是刚好从1开始,如果有删除记录什么的,这个id也不会连续。在显示是否管理员时,使用了?表示式,判断$info['admin']的值,如果为真(也就是1),则显示“是”,否则显示“否”。最后一列,是后续操作要使用的,就是“删除会员”和“设置管理员”。代码分析总结本次课程,我们学会了循环输出数据表记录的方法,同时,我们了解了如何判断用户权限的方法。谢谢项目1会员管理系统任务14数据分页数据分页原理数据表中的记录可能会越来越多,甚至上百万条。如果一次性读出,会非常不便,同时,也会影响系统性能。分页的基本原理是,在查询时,使用limit关键字,只读取指定条数的记录。通过多次读取,最终显示所有内容。数据分页原理为了方便,特别是为了方便我们初学者使用分页,我们提供了一个page.php文件,这个内容已经包含了分页的主体代码,在此基础之上,我们可以非常简单的实现数据的分页显示。下面,我们给出page.php文件的代码,方便大家自己制作这个文件。page.php文件代码page.php文件代码数据分页的实现首先包含page.php文件。然后查询记录表的总记录数。然后设定每一页

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论