点赞功能原理。     图片。

1.connect.php文件

<?php
$host="localhost";
$db_user="root";
$db_pass="111111";
$db_name="dianzan";
$timezone="Asia/Shanghai";

$link=mysql_connect($host,$db_user,$db_pass);
mysql_select_db($db_name,$link);
mysql_query("SET names UTF8");
?>

2.love.php文件

<?php
include_once("connect.php");

$ip = get_client_ip();
$id = $_POST['id'];
if(!isset($id) || empty($id)) exit;

$ip_sql=mysql_query("select ip from pic_ip where pic_id='$id' and ip='$ip'");
$count=mysql_num_rows($ip_sql);
if($count==0){
	$sql = "update pic set love=love+1 where id='$id'";
	mysql_query( $sql);
	$sql_in = "insert into pic_ip (pic_id,ip) values ('$id','$ip')";
	mysql_query( $sql_in);
	$result = mysql_query("select love from pic where id='$id'");
	$row = mysql_fetch_array($result);
	$love = $row['love'];
	echo $love;
}else{
	echo "赞过了..";
}

//获取用户真实IP
function get_client_ip() {
	if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
		$ip = getenv("HTTP_CLIENT_IP");
	else
		if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
			$ip = getenv("HTTP_X_FORWARDED_FOR");
		else
			if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
				$ip = getenv("REMOTE_ADDR");
			else
				if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
					$ip = $_SERVER['REMOTE_ADDR'];
				else
					$ip = "unknown";
	return ($ip);
}
?>

3.index.php文件

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="keywords" content="jquery">
<meta name="description" content="">
<title>jQuery+Ajax+PHP实现“赞”</title>
<link rel="stylesheet" type="text/css" href="../css/main.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
	$("p a").click(function(){
		var love = $(this);
		var id = love.attr("rel");
		love.fadeOut(50);
		$.ajax({
			type:"POST",
			url:"love.php",
			data:"id="+id,
			cache:false,
			success:function(data){
				love.html(data);
				love.fadeIn(50);
			}
		});
		return false;
	});
});
</script>
<style type="text/css">
@charset "utf-8";
/* CSS Document */
html,body,div,span,h1,h2,h3,h4,h5,h6,p,pre,a,code,em,img,small,strong,sub,sup,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}
a{color:#007bc4/*#424242*/; text-decoration:none;}
a:hover{text-decoration:underline}
ol,ul{list-style:none}
table{border-collapse:collapse;border-spacing:0}
body{height:100%; font:12px/18px "Microsoft Yahei", Tahoma, Helvetica, Arial, Verdana, "\5b8b\4f53", sans-serif; color:#51555C; background:#162934 url(../images/body_bg.gif) repeat-x}
img{border:none}

#header{width:980px; height:92px; margin:0 auto; position:relative}
#logo{width:240px; height:90px; background:url(../images/logo_demo.gif) no-repeat}
#logo h1{text-indent:-999em}
#logo h1 a{display:block; width:240px; height:90px}

#main{width:980px; min-height:600px; margin:30px auto 0 auto; background:#fff; -moz-border-radius:12px;-khtml-border-radius: 12px;-webkit-border-radius: 12px; border-radius:12px;}
h2.top_title{margin:4px 20px; padding-top:15px; padding-left:20px; padding-bottom:10px; border-bottom:1px solid #d3d3d3; font-size:18px; color:#a84c10; background:url(../images/arrL.gif) no-repeat 2px 14px}

#footer{height:60px;}
#footer p{ padding:10px 2px; line-height:24px; text-align:center}
#footer p a:hover{color:#51555C}

.clear{clear:both}
.list{width:760px; margin:20px auto}
.list li{float:left; width:360px; height:280px; margin:10px; position:relative}
.list li p{position:absolute; top:0; left:0; width:90px; height:24px; line-height:24px; background:#000; opacity:.8;filter:alpha(opacity=80);}
.list li p a{padding-left:30px; height:24px; background:url(images/heart.png) no-repeat 4px -1px;color:#fff; font-weight:bold; font-size:14px}
.list li p a:hover{background-position:4px -25px;text-decoration:none}
</style>
</head>

<body>
<div id="header">
   <div id="logo"><h1><a href="http://www.jjm.hk" title="返回首页">精工坊</a></h1></div>
</div>
<div id="main">
	 <h2 class="top_title">jQuery+Ajax+PHP实现“赞”</h2>
     <ul class="list">
     <?php
	 include_once("connect.php");
	 $sql = mysql_query("select * from pic");
	 while($row=mysql_fetch_array($sql)){
		 $pic_id = $row['id'];
		 $pic_name = $row['pic_name'];
		 $pic_url = $row['pic_url'];
		 $love = $row['love'];
	 ?>
     	<li><p><a href="#" title="赞" class="img_on" rel="<?php echo $pic_id;?>"><?php echo $love;?></a></p></li>

        <?php }?>
     </ul>
     <div class="clear"></div>

</div>
</body>
</html>

4.引入sql语句 ---pic.sql

/*
Navicat MySQL Data Transfer

Source Server         : localhost_3306
Source Server Version : 50517
Source Host           : localhost:3306
Source Database       : test

Target Server Type    : MYSQL
Target Server Version : 50517
File Encoding         : 65001

Date: 2014-01-11 23:10:18
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `pic`
-- ----------------------------
DROP TABLE IF EXISTS `pic`;
CREATE TABLE `pic` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `pic_name` varchar(60) NOT NULL,
  `pic_url` varchar(60) NOT NULL,
  `love` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of pic
-- ----------------------------
INSERT INTO `pic` VALUES ('1', '1', 's1.jpg', '1');
INSERT INTO `pic` VALUES ('2', '2', 's2.jpg', '0');

5.sql语句--pic_ip.sql

/*
Navicat MySQL Data Transfer

Source Server         : localhost_3306
Source Server Version : 50517
Source Host           : localhost:3306
Source Database       : test

Target Server Type    : MYSQL
Target Server Version : 50517
File Encoding         : 65001

Date: 2014-01-11 23:10:27
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `pic_ip`
-- ----------------------------
DROP TABLE IF EXISTS `pic_ip`;
CREATE TABLE `pic_ip` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `pic_id` int(11) NOT NULL,
  `ip` varchar(40) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of pic_ip
-- ----------------------------
INSERT INTO `pic_ip` VALUES ('1', '1', '127.0.0.1');

  

 

最新文章

  1. 使用HttpURLConnection下载图片
  2. SQL2005备份数据库到远程服务器中
  3. Hibernte继承映射
  4. google_apactest_round_A_problem_D
  5. LR实现http协议性能测试脚本
  6. 剑指Offer31 把数组排成最小的数
  7. 【C++对象模型】构造函数语意学之二 拷贝构造函数
  8. .NET开源工程推荐(Accord,AForge,Emgu CV)
  9. bzoj 1874 取石子游戏 题解 &amp;amp; SG函数初探
  10. 用scikit-learn研究局部线性嵌入(LLE)
  11. 51nod 1451 合法三角形 判斜率去重,时间复杂度O(n^2)
  12. 华为6.0系统设备最完美激活Xposed框架的经验
  13. Hadoop3新特性
  14. dll相关总结
  15. Quartz学习总结
  16. cksum命令详解
  17. 排序算法&lt;No.5&gt;【堆排序】
  18. python struct模块的使用
  19. bzoj1193 马步距离
  20. jQuery源码学习笔记一

热门文章

  1. 对话框AlertDialog.Builder使用方法
  2. IE报错:模块&quot;scrrun.dll&quot;已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005
  3. javascript匿名函数应用
  4. 常用SQL Server日期格式化
  5. Struts2:上传下载
  6. 使用 Google Web Fonts
  7. Linq并行执行
  8. mysqldump的使用
  9. 《从零开始做一个MEAN全栈项目》(3)
  10. MySQL 基础语句