《PHP》课件6-2 新闻访问量统计和新闻点赞_第1页
《PHP》课件6-2 新闻访问量统计和新闻点赞_第2页
《PHP》课件6-2 新闻访问量统计和新闻点赞_第3页
《PHP》课件6-2 新闻访问量统计和新闻点赞_第4页
《PHP》课件6-2 新闻访问量统计和新闻点赞_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

本节主要内容新闻访问量的统计新闻点赞功能了解AJAX技术以及AJAX技术在PHP中的使用新闻访问量统计和新闻点赞

当用户(注册用户或游客均可)浏览新闻列表时,可以查看新闻的详情,每次查看新闻详情都增加一次新闻的访问量,同时需要更新新闻的访问量。如果用户特别喜欢新闻的话,可以对本条新闻进行点赞操作统计并显示新闻的访问量设计思路在新闻详情网页中,进入网页的时候根据新闻编号查找新闻的当前访问量。调用新闻数据表的数据访问层中的updateViewCount()方法更新当前新闻编号的访问量。在新闻详情网页上显示更新后的新闻访问量。新闻列表页面newslist.php在DWCS6中打开网站examples,在文件夹“chapter6”下新建一个文件夹“ch6_6”,在文件夹下添加一个PHP文件,并将文件重命名为“newslist.php”,其代码和第五章中最后实现的具有分页功能的newslist.php代码一致。新闻详情页面newsdetail.php添加一个新的PHP文件,并将文件重命名为newsdetail.php,用来显示新闻的详细信息。该页面必须由newslist.php页面跳转而来,若直接进入该页面的话,自动跳转到newslist.php页面。<?php……if(isset($_GET['newsid'])){$newsid=$_GET['newsid'];

$rst=findNewsById($newsid);

$author_rst=findUserById($rst['uid']);

$author=$author_rst['uname'];//更新新闻访问量

$viewcount=$rst['viewcount']+1;

$result=updateViewCount($newsid);

$newsclass_rst=findNewsClassById($rst['classid']);

$newsclass=$newsclass_rst['classname'];

}else{ header("location:newslist.php");

}?><divclass="news_show">

<divclass="show_title">

<h2><?phpecho$rst['title'];?></h2>

<span>时间:<?phpecho$rst['publishtime'];?></span>

<span>分类:<?phpecho$newsclass;?></span>

<span>作者:<?phpecho$author;?></span><span>访问量:<?phpecho$viewcount;?></span>

</div>

<divclass="content"><?phpechohtmlspecialchars_decode(trim($rst['content']));?></div></div>新闻点赞功能的设计在实现新闻点赞功能的同时,为了防止同一用户对一篇新闻“刷赞”的行为,可以有多种实现方式。在本任务中,无论是注册用户还是游客都可以对新闻点赞,因此可以采用IP地址来限制同一用户对一篇新闻仅能点赞一次。用户点赞后,在新闻详情页面中仅仅点赞数发生变化,重新载入页面可刷新点赞数,但用户的体验不好。AJAX技术是一种在不重载整个页面的前提下,支持部分更新页面数据的技术。这里使用基于JQuery的AJAX技术来局部刷新点赞数据。新闻点赞数据访问层的设计与实现函数描述

addNewsLike($newsid,$userip)添加新闻点赞记录,参数$newsid为新闻编号,$userip为用户端机器的ip地址

findNewsLike($newsid,$userip)查找新闻点赞信息getIP()返回客户端IP地址文件夹“chapter6”下的公共文件夹“common”中添加一个文件名为“like.dao.php”文件,用来实现新闻点赞数据访问层:新闻点赞数据访问层的设计与实现functionaddNewsLike($newsid,$userip){

$link=get_connect(); $newsid=mysql_dataCheck($newsid); $userip=mysql_dataCheck($userip); $sql="insertinto`tbl_like`(`newsid`,`userip`)values($newsid,'$userip')";

$rs=execUpdate($sql,$link); return$rs;}新闻点赞数据访问层的设计与实现//按新闻编号和ip查找点赞记录functionfindNewsLike($newsid,$userip){

$sql="select*from`tbl_like`where`newsid`=$newsidand`userip`='$userip'";

$link=get_connect();

$rs=execQuery($sql,$link);

if(count($rs)>0){return$rs[0];}

return$rs;}新闻点赞数据访问层的设计与实现functiongetIP(){if(!empty($_SERVER["HTTP_CLIENT_IP"])){$cip=$_SERVER["HTTP_CLIENT_IP"];}elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){

$cip=$_SERVER["HTTP_X_FORWARDED_FOR"];}elseif(!empty($_SERVER["REMOTE_ADDR"])){

$cip=$_SERVER["REMOTE_ADDR"];}else{

$cip="无法获取!";}return$cip;}AJAX技术介绍AJAX(AsynchronousJavaScriptandXML),即异步的JavaScript和XML。AJAX不是新的编程语言,而是一种用于创建快速动态网页的技术。AJAX可以在不重新加载整个网页的情况下,对网页的某部分进行更新。编写常规的AJAX代码并不容易,因为不同的浏览器对AJAX的实现并不相同。为了让大家能够相对容易的使用AJAX技术,JQuery团队为我们解决了这个难题,我们只需要一行简单的代码,就可以实现AJAX功能。新闻点赞功能实现示例在新闻详情显示页面上显示当前新闻的点赞数。当用户单击按钮时,首先判断该用户是否已经点过赞,若没点过,点赞数更新,同时更新页面上的点赞数;若已经点过,则提示不可多次点赞。设计思路在新闻详情网页中,进入网页的时候根据新闻编号查找新闻的当前点赞数量。为了防止用户多次点赞,需要利用ip地址限制用户多次操作,一个ip对一篇新闻仅能点赞一次,将用户的点赞记录保存到新闻点赞表中。用户点赞后,页面仅点赞数发生变化,页面其他部分的内容并没有发生变化,因此可以使用AJAX技术进行页面的局部刷新而不是重载整个页面。新闻详情页面newsdetail.php打开网站examples,打开文件夹“chapter6”下的子文件夹“ch6_6”,编辑其中的newsdetail.php文件。<scriptsrc="../common/jquery-3.1.1.min.js"type="text/javascript"></script>……<scripttype="text/javascript">$(document).ready(function(){$("#vote").click(function(){

$.ajax({url:"updatelike.php",

//处理数据的地址

type:"post",

//数据提交形式

data:{"id":<?phpecho$newsid;?>,"likecount":<?phpecho$likecount;?>},

//需要提交的数据

success:function(data){

if(data==false){

alert("赞过了");

}else{

alert('点赞数+1');

$("#likes").html(data);

}

} ……</script>更新点赞数页面updatelike.php<?php……$id=isset($_POST['id'])?$_POST['id']:'';$likecount=isset($_POST['likecount'])?$_POST['likecount']:'';

$userip=getIP();

温馨提示

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

评论

0/150

提交评论