版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE1《PHP网站开发项目式教程》教案基本信息说明模块任务8实现接收、阅读、删除邮件功能单元数3教学目标知识目标掌握分页浏览功能实现过程中需要的各种知识;掌握阅读邮件功能实现过程中需要的各种知识;掌握删除邮件功能实现过程中需要的各种知识。能力目标使学生具备在网站中实现分页浏览功能的能力使学生具备熟练应用字符串替换函数及实现邮件阅读功能的能力使学生具备实现在邮箱网站中删除邮件的能力重点用$_GET接收URL附加数据的功能实现方法函数mysqli_fetch_array()和mysqli_fetch_object()的功能及用法分页浏览功能的实现过程阅读邮件页面中附件信息的显示及附件图标的添加删除邮件的三个步骤难点分页浏览功能的实现过程阅读邮件页面中附件信息的显示及附件图标的添加彻底删除邮件的功能实现教学方法与教学手段教学方法项目驱动、启发引导式和小组讨论教学手段通过运行所设计的163邮箱项目中分页浏览收件箱中邮件子项目,引导学生观察需要完成的功能,讲解需要的知识点,共同实现相关功能教学内容分页浏览邮件实现阅读邮件实现删除邮件1.分页浏览邮件强调URL附加提交数据的做法;强调获取并处理数据表记录信息的方法;强调分页浏览中的各种功能设计(1)收件箱功能描述1)能够获取当前用户收件箱中尚未设置删除标志的邮件总数并显示出来;2)能够实现邮件的分页浏览功能,输出“首页、上页、下页、尾页”的文本或者超链接,若当前显示的是第一页中的邮件信息,则“首页”和“上页”链接不可用,若当前显示的是最后一页中的邮件信息,则“下页”和“尾页”链接不可用;3)能够根据用户单击的页面超链接进行换页,例如,若当前正在显示的是第2页,单击“下页”超链接后,能够将页码3提交给服务器,以打开下页中的邮件信息;若此时单击“上页”超链接,能够将页码1提交给服务器,以打开上页中的邮件信息;4)能够通过查询语句中的限制子句limit获取每页中指定的邮件,能够使用mysqli_fetch_array()函数从查询结果记录集中获取一条记录(即一封邮件的所有信息),然后使用数组形式将每封邮件的发件人、主题、收发日期以及邮件中是否有附件等信息显示到邮件列表中,若是有附件,就在指定列中显示附件小图标flag-1.jpg;5)能够根据用户的选择,修改每页中的邮件数。6)单击任意邮件中的发件人或者邮件主题信息时,能够将当前邮件的emailno列值(即邮件序号)提交给服务器,完成邮件的打开与阅读功能;7)能够根据用户是否已经阅读过某封邮件来确定该邮件的发件人和主题超链接是否要设置为加粗效果。8)选中需要删除邮件左侧的复选框,单击“删除”按钮之后,能够将选中的所有邮件设置为已删除邮件。(2)用$_GET接收URL附加数据除了能够使用表单一次性向服务器提交大量数据,还可以通过URL附加数据的方式向服务器提交少量简单数据,URL附加数据的方式可以在任何通过URL打开一个页面的位置使用,例如超链接和window.open()等。在收件箱页面中,使用非常多的一个功能是单击超链接向服务器端提交数据,也就是在打开链接文件的同时,向该文件中提交了指定的数据。例如单击首页、上页、下页、尾页时,需要向服务器提交2个数字值,一个作为将要显示的页面的页码信息,另一个是每页中显示的记录数;单击任意邮件的发件人或者邮件主题时,则需要向服务器提交当前邮件的emailno列值,指定要打开阅读的邮件序号。需要解决的问题有两个:第一,在超链接中需要如何设置,才能在单击时将数据提交给服务器?第二,超链接提交的数据在服务器端如何使用系统数组$_GET获取?(3)处理查询结果记录集中的记录1)mysqli_fetch_array()函数使用该函数可以从查询结果记录集中获取记录指针所指向的记录。格式为:arraymysqli_fetch_array($result,$result_type),参数说明。$result,必选,表示查询结果记录集。$result_type,可选,表示返回的数组的类型,有三个值,说明如下。MYSQLI_ASSOC:返回关联数组,记录集中的列名为数组的键。MYSQLI_NUM:返回索引数组,记录集中的列号为数组的索引,索引0代表查询结果记录集中第一列的信息,索引1代表第二列的信息,以此类推。MYSQLI_BOTH:默认,返回同时包含关联键名和数字索引的数组。通常情况下都省略第2个参数,使用默认的MYSQLI_BOTH。对于得到的数组,一般都选择使用关联数组的形式,这是因为关联数组使用数据表中的列名作为数组元素的键名,这种形式更直观、更容易理解,所以成为程序中的主要用法。返回结果是数组形式保存的记录信息或者是NULL|false如果记录指针指向某条存在的记录,则将获取记录中所有的列,并且以一个数组的形式保存;如果记录指针指向最后一条记录之后,则返回NULL;若发生错误,则返回false。2)mysqli_fetch_object()函数使用该函数可以从查询结果记录集中获取记录指针所指向的记录。格式为:objectmysqli_fetch_object($result)。若是指向的记录存在,则返回的结果保存为对象,使用表中的列名作为对象的属性来获取各个列的值;若是指向的记录不存在,则返回NULL;若发生错误,则返回false。获取列值若函数mysqli_fetch_object()返回结果使用$row表示,存在数据表中的列名emailno,要得到该列的值,需要使用如下代码:
$row->emailno即对象与属性之间需要使用符号“->”连接(4)分页浏览邮件在众多的动态页面中,要浏览保存在数据库中的大量数据,都需要使用分页浏览技术,例如学习网站中的题库列表、学生成绩单列表、邮箱中的数千封邮件等等,使用分页浏览技术之后,无论数据量怎样变化,都能保证页面的长度不会发生任何变化,变化的只有页数,只要用户单击进入自己需要的页面查阅信息即可。1)获取邮箱中邮件总数获取收件箱邮件总数,需要通过如下几个操作步骤来实现:第一步,启用session,获取$_SESSION数组中存储的登录账号信息,并在后面连接上@163.com,为设计查询条件做好准备;第二步,连接打开数据库,查询表emailmsg列receiver中包含当前登录账号且没有被删除的邮件信息第三步,获取查询结果记录集中的记录数,即为当前用户收件箱中的邮件总数,在div1内部输出。2)修改每页中的记录数,需要通过如下几个操作步骤来实现。第1步,设计可用于选择的下拉列表元素。第2步,用户选择后,使用脚本代码重新运行收件箱页面文件,将选择结果提交给服务器。第3步,在重新运行之后的收件箱页面中,将用户选择的结果写入列表框。3)确定每页中要显示的记录数和邮件的总页数每页中要显示的记录数,初始时直接在代码中给定即可,例如$pagesize=5;收件箱中的邮件页数根据邮件总数和每页中的记录数来计算,因为得到的邮件页数可能是小数,所以需要使用函数ceil()向上取整,得到不小于该数的最小整数。例如,若获取的记录总数$reccount为17,设置的每页记录数$pagesize为5,则两者相除之后的结果为3.4,使用ceil(3.4)得到的结果是不小于3.4的最小整数4;4)确定当前要显示邮件信息的页码获取当前要显示邮件信息的页码有两种情况:刚打开收件箱和单击换页超链接之后若是用户刚刚打开收件箱,显示的应当是第一页的邮件信息,之后则根据用户单击的“首页、上页、下页、尾页”超链接获取当前要显示的邮件信息的页码。例如,假设当前正在显示的是第3页内容,若单击“上页”超链接,接下来要显示的一定是第2页,这个页码数字将通过单击超链接时以URL附加数据的方式提交给服务器。5)设计“首页、上页、下页、尾页”时的原则若收件箱中邮件页数为0,则首页、上页、下页、尾页都是文本若当前显示第1页,则“首页”设置为普通文本,否则“首页”为超链接,单击时向服务器提交页码1;若当前显示第1页,则“上页”设置为普通文本,否则“上页”为超链接,在单击时需要向服务器提交的页码是当前正在显示的页面页码减去1;若当前显示最后一页,则“下页”设置为普通文本,否则“下页”为超链接,在单击时需要向服务器提交的页码是当前正在显示的页面页码加上1;若当前显示最后一页,则“尾页”设置为普通文本,否则设置的“尾页”超链接在单击时需要向服务器提交的页码是总页数值。6)显示当前页的邮件记录信息复选框是为了在当前页中选择要删除的邮件而设置的,若某个复选框被选中,单击元素<divclass="div2">中的“删除”按钮时,要将对应邮件的emailno列值提交给服务器。当用户需要删除一封或多封邮件时,选择相应邮件前面的复选框,单击“删除”按钮即可运行delete.php文件,将指定邮件移至已删除列表中。复选框右侧显示的是发件人,该列用的是数据表emailmsg中sender列值去掉@163.com之后的内容,该内容需要被设计为超链接。当用户单击超链接时,将运行页面文件openemail.php,同时向该文件提交当前邮件的emailno列值,从而打开指定邮件供用户阅读。第3列显示的是邮件主题,该列用的是数据表emailmsg中的subject列值,该内容也要设计为超链接,该列超链接的设置与发件人列的相同。发件人列和主题列的超链接要根据用户是否已经阅读过邮件确定是否使用加粗效果。附件图标列的内容有两种情况:若当前邮件中有附件,则该列中显示附件图标(flag.jpg);若当前邮件中没有附件,则该列内容为一个空格。收发日期列的内容是对emailmsg表中datesorr的列值(日期时间格式Y-m-dH:i)进行处理之后得到的。2.阅读邮件强调获取附件个数、设计打开和下载附件功能的实现方法、添加附件类型图标的方法(1)功能说明1)能够根据用户选择的邮件序号获取并显示邮件信息。2)能根据情况确定是否要修改emailmsg表的readflag列值3)能够计算出附件的个数并在页面中输出。4)显示邮件内容时,必须能够将发件人在编辑邮件内容时按下的回车键转换为本页面中的段落标记,否则无论原来的邮件内容有多长,都显示在一个段落中;要求每个段落第一行都要缩进两个字符;任何情况下都要求为内容区保留一定的页面空间,若盒子div2的高度不够100px,则将高度设置为100px,否则高度根据邮件内容高度来确定。5)能够根据是否存在附件来确定是否显示盒子div3。6)显示盒子div3时,除了将放在数据表中存储的附件信息输出之外,在用户单击“下载”或“打开”链接时能够实现附件的下载或打开操作。在显示的附件信息中包含了随机数标识、附件名称及附件大小三部分信息,这是为了保证用户在接收附件之前可以得知附件的大小。当用户单击“打开”或“下载”超链接时,要打开或下载的附件都是保存在upload文件夹下的文件,这些文件名称前面都带有“(随机数标识)”前缀,为了保证用户能够正常打开或下载附件,设计超链接时,要保留文件名前面“(随机数标识)”前缀,去掉文件名后面的“(大小)”。在附件文件名称前面显示附件类型图标(2)str_replace()函数函数功能:将用户指定的任意子串全部替换成另一个子串;函数格式:str_replace(find,replace,string,count);参数解释:find:必选,规定要查找的子串,也就是将要被替换掉的子串;replace:必选,规定要用来进行替换的子串;string:必选,规定被搜索的字符串;count:可选,对替换次数进行计数,通常很少使用。(3)阅读邮件的功能实现1)设计元素<divid='div1'>中的内容三个操作步骤:第一步,获取要打开的邮件的邮件序号;第二步,连接打开数据库email,设置字符集编码,以指定的邮件序号为条件查询数据表emailmsg,得到指定序号的邮件信息;第三步,从服务器端输出元素<divid='div1'>,并在其内部输出需要的邮件信息。2)设计元素<divid='div2'>3)设计元素<divid='div3'>首先要判断是否需要输出元素<divid='div3'>,若是当前邮件中有附件,则要输出,否则不需要输出。输出元素<divid='div3'>中的内容需要三个操作步骤。第一步,使用类名为p1的段落控制输出附件个数;第二步,对数组$attachmentMsgArr中的附件信息进行处理,获取用于超链接打开或下载的附件名称信息,格式为“(随机数标识符)文件名称.扩展名”,这是在文件夹upload中存储的文件名称格式。使用类名为p2的段落控制输出每个附件及超链接第三步,显示附件前面的类型图标3.删除邮件强调将邮件放入已删除列表、显示已删除列表内容、彻底删除邮件功能(1)将邮件放入已删除列表在receiveemail.php页面中,选中某封或者某几封邮件前面的复选框,单击“删除”按钮之后的本质操作是,在被选中邮件记录的deleted列值中添加当前登录账号信息1)创建delete.php文件,实现如下功能:启用session接收文件receiveemail.php中复选框组markup传递过来的邮件序号值连接打开数据库,设置字符集编码为utf8使用循环结构,在被选中邮件记录的deleted列值中添加当前账号信息循环结构内部先查询要删除的邮件,之后再更新其deleted列值最后输出JS脚本代码,使用window.location.href='receiveema
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- ESG评级体系下食品变性淀粉项目水资源循环利用技术的隐性价值显性化
- AI行为识别算法重构电子防盗器投资估值逻辑
- 2026年漯河食品职业学院高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2026年湖南都市职业学院高职单招笔试综合素质试题库含答案解析3套试卷
- 2026年湖南住院医师-湖南住院医师医学检验科历年参考题库含答案解析
- 2026年浙江舟山群岛新区旅游与健康职业学院高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2026年浙江商业职业技术学院高职单招笔试综合素质试题库含答案解析3套试卷
- 2026年法律知识法治建设知识竞赛-领导干部法律基本知识历年参考题库含答案解析
- 2026年泉州幼儿师范高等专科学校高职单招笔试英语试题库含答案解析3套试卷
- 2026年河南工业和信息化职业学院高职单招笔试英语试题库含答案解析3套试卷
- 华为光芯片机考题库
- 云南省昆明市2025届高三“三诊一模”摸底诊断测试英语试题(含答案含听力原文无音频)
- 超市员工档案管理制度
- 《数字矿山课件》课件
- 《电机拖动学》课件
- 一年级新生家长会课件(共25张课件)
- YYT 0644-2008 超声外科手术系统基本输出特性的测量和公布
- 胸腰椎椎管狭窄的护理查房
- GB/T 9808-2023钻探用无缝钢管
- 遗传学-遗传的细胞学基础
- YY/T 1794-2021口腔胶原膜通用技术要求
评论
0/150
提交评论