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>