具体思路如下,前台传文章id和点击事件的status值,点赞和取消赞都传status=1,默认传status=0,每刷新一次页面都与后台进行交互。

首先在数据库新建一个表,我这取表名为good,新建三个字段分别是自增长的id,文章的newsid和获取到的ip。

在wamp\www\phpcms\phpcms\model新建模型 good_model.class.php方便对数据库操作,代码如下:

defined('IN_PHPCMS') or exit('No permission resources.');

pc_base::load_sys_class('model', '', 0);

class good_model extends model {

public function __construct() {

$this->db_config = pc_base::load_config('database'); //加载数据库

$this->db_setting = 'default';

$this->table_name = 'good'; // 指向good表

parent::__construct();

}

}

?>

方法很简单,代码如下:

public function good() {

$json = array();

pc_base::load_app_func('global');

$ip = ip(); // 获取ip

$newsid = $_POST['id']; // 获取文章id

$status = $_POST['status']; // 获取状态值 默认不点赞和刷新页面都为零

$userinfo = array();

$userinfo['newsid'] = $_POST['id'];

$userinfo['ip'] = $ip;

$this->good_db = pc_base::load_model('good_model'); //加载模型

$info = $this->good_db->select($where=" newsid = '$newsid' AND ip = '$ip' ",$data = '*',$sql); // 查询数据库

$num = count($info); // $num>0,表示此ip已点过赞

if ( $status == 1 && $num >0) {

$this->good_db->delete($where=" newsid = '$newsid' AND ip = '$ip' "); // 删除数据,取消该ip点赞

$json['flag'] = 0;

}elseif($status == 1 && $num == 0) {

$this->good_db->insert($userinfo, array('newsid'=>'$newsid')); //插入数据,表示该ip已点过赞

$json['flag'] = 1;

}

if ( $status == 0 && $num >0) { //刷新页面时的判断

$json['flag'] = 1;

}elseif($status == 0 && $num == 0) {

$json['flag'] = 0;

}

$more = $this->good_db->select($where=" newsid = '$newsid' AND ip = '$ip' ",$data = '*',$sql);

$total = count($more); //计该id文章点赞的次数

$json['count'] = $total;

echo json_encode($json);

}

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/9208.html

微信打赏

支付宝打赏

感谢您对作者Bruin的打赏,我们会更加努力!    如果您想成为作者,请点我

phpcms 点赞_Phpcms 实现文章点赞功能 【原创】相关推荐

  1. Redis + DB +消息队列 实现高效的文章点赞,点踩功能

    需求说明 用户可点赞或踩,每赞一次,"赞"数量+1,每踩一次,"踩"数量+1,"点赞"和"点踩" 当天内二选一当天内有效 ...

  2. 点赞功能模块-文章点赞功能实现

    PraiseController.java //点赞文章@RequestMapping(value = "on",method = RequestMethod.POST,consu ...

  3. 微信小程序 文章点赞功能

    小程序给文章点赞 资讯列表页 详情页 小程序前端代码: (在前端添加点击事件  bindtap='update') <view style='padding-top:30rpx;width:93 ...

  4. CSDN文章点赞、收藏、评论后到底发生了什么?简要分析HTTP交互机制

    作者:Eason_LYC 悲观者预言失败,十言九中. 乐观者创造奇迹,一次即可. 一个人的价值,在于他拥有的,而不是他会的.所以可以不学无数,但不能一无所有! 技术领域:WEB安全.网络攻防 关注WE ...

  5. redis系列:通过文章点赞排名案例学习sortedset命令

    前言 这一篇文章将讲述Redis中的sortedset类型命令,同样也是通过demo来讲述,其他部分这里就不在赘述了. 项目Github地址:https://github.com/rainbowda/ ...

  6. zblog php 点赞,文章点赞开发版

    该插件主要面向主题制作者,方便主题制作者快速生成点赞.支持.顶踩功能! 安装并启用该插件后,主题制作者无需编写php后台代码,在模板文件中插入指定标签即可. 10/26:修正使用加速乐等cdn时获取I ...

  7. 划重点,如何提升微信文章点赞?

    微信文章的一个阅读数,代表一个人点进过这篇文章,但是无法确定是否已经看完.一个点赞,代表一个人对文章有着一定程度的认同,不一定读完文章,但至少拖到了最后,让文末的"阅读原文"提示或 ...

  8. php微信小程序如何无限点赞,小程序中点赞和收藏功能的实现代码

    小程序中的点赞功能和收藏功能是必不可少的,那么该如何实现点赞和收藏两个功能呢?本篇文章将给大家分享小程序中的点赞功能和收藏功能的代码实现. 收藏功能:focusFavoriteTab: functio ...

  9. wordpress 点赞 ajax,WordPress不用插件实现文章AJAX点赞、文章点赞排行

    WordPress点赞功能虽然对网站整体的SEO优化意义不大,但是如果很多人给你的文章点赞,那就是说文章得到了更多人的认可,你的文章给别人带来了帮助. 如果再加上一个文章点赞排行,那么就可以很精准的分 ...

最新文章

  1. PHP 接入(第三方登录)QQ 登录 OAuth2.0 过程中遇到的坑
  2. 两个列表之间移动数据
  3. 随机森林算法4种实现方法对比测试:DolphinDB速度最快,XGBoost表现最差
  4. Shell中的${}、##和%%使用范例
  5. EntityManager:seam新手必读(二)
  6. 在阅读文献中提高升华自己--转
  7. boost::endian模块实现conversion的测试程序
  8. Linux:入门基础
  9. Nagios+pnp4nagios+rrdtool 安装配置nagios(一)
  10. php html转为pdf文件,php使用wkhtmltopdf实现html转pdf
  11. python 类定义 垃圾_什么是python对象摧毁?python中的对象摧毁(垃圾回收)机制是什么?...
  12. 当前监管面比较关注的企业征信模型
  13. libevent和基于libevent的网络编程
  14. Jupyter Notebook代码提示及补齐功能
  15. 【零基础学Java】—继承父类并实现多个接口(二十五)
  16. ORA-06413 连接未打开的处理办法【独家办法】
  17. 记录wuyi公积金调用过程
  18. 配置本地DNS服务器地址
  19. html页面嵌入高德地图,高德地图WEB版基础控件展示
  20. TOP100summit分享实录 | JFrog高欣:Kubernetes is hard!JFrog的Kubernetes实践

热门文章

  1. mysql保存word文档_mysql 保存word
  2. 二次开发 外包项目利器 springmvc SSM后台框架源码
  3. 高能来袭,CG世纪交易所合约交易公测正式启动
  4. Mysql使用索引为什么会变快?
  5. 计算机c盘最好多少储存空间,Windows10系统C盘分配多少空间合适?合理划分win10C盘空间的方法...
  6. Android 5.1 解决打开手电筒后,无法打开相机问题
  7. MySQL如何查询同姓的员工?
  8. 【iOS】通过bundleId查询应用信息
  9. 产生死锁的原因以及快速定位死锁的位置
  10. springboot ajax form json 请求方式