php 代码:
public function sign(){
$current=date('Y-m-d H:i:s',time());//当前时间
$hasSign=M('sign')->where("uid={$this->uid}")->find();//当前会员的签到表
$count=$hasSign['si_count'];//签到次数
if($hasSign){
$lastSignDay=strtotime("{$hasSign['si_time']}");//si_time 签到时间
$lastSign=date('Y-m-d',$lastSignDay);//上次签到时间
$today=date('Y-m-d',time());
if($lastSign==$today){
echo "今天已签到,您已连续签到 <font color='green'> {$count} </font> 天,连续签到7天+10分!";
exit();
}
$residueHour=24+24-date('H',$lastSignDay); //有效的签到时间 (签到当天剩余的小时+1天的时间)
$formatHour=strtotime(date('Y-m-d H',$lastSignDay).':00:00');//签到当天 2014-12-07 18:00:00
$lastSignDate=strtotime("+{$residueHour}hour",$formatHour);//在2014-12-07 18:00:00 基础上+ 有效的签到时间
if(time()>$lastSignDate){ //当前时间 > 上一次签到时间
$count=1;
}else{
$count=$count+1;
}
$sign=M('sign')->where("uid={$this->uid}")->save(array('si_time'=>date('Y-m-d H:i:s'),'si_count'=>$count)); //签到表
}else{
$sign=M('sign')->add(array('uid'=>$this->uid,'si_count'=>1)); //签到表
}
if($sign=M('sign')->where("uid={$this->uid}")->find()){
if($sign['si_count']!=0 && !empty($sign['si_count'] )){
if($sign['si_count']%7==0){
$active_integral=10;
$integral_info='连续签到7天,增送10积分';
}else{
$active_integral=1;
$integral_info='签到+1分';
}
$x = memberIntegralLog($this->uid,4,$active_integral,$integral_info);
dump($x);
}
if($count>0){
echo "<font color='green'>签到成功,您已连续签到 <font color='red'> {$sign['si_count']} </font> 天,连续签到7天+10分!</font>";
}else{
echo "<font color='green'>签到成功</font>";
}
}else{
echo '签到失败,请稍后重试!';
}
}
html 代码:
<a href='javascript:;' class='sign_in' title='签到'>签到拿积分!</a>
js 代码:
<script type="text/javascript">
$(function(){
$('.sign_in').click(function() {
//alert('__URL__/sign/tag/in');
$.ajax({
url : '__URL__/sign',
dataType : 'text',
success : function(res) {
if (res.match(/green/)) {
location.reload();
$('.sign_in').text('已签到 +1分');
}
alert(res);
}
});
});
});
</script>