php 출석 기능 실현 방법 실례 분석

7981 단어 php출석 체크
본 고 는 php 가 출석 기능 을 실현 하 는 방법 을 실례 로 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
먼저 저 는 데이터베이스 에 두 장의 표를 만 들 었 습 니 다.하 나 는 사용자 의 포인트 표 이 고 하 나 는 출석 상태 표 이 며 사용자 의 포인트 수 와 도착 상 태 를 기록 하 는 데 사 용 됩 니 다.


사용자 서명 상태 표 에 필드 가 있 습 니 다.lastsign_time,즉 지난번 출석 시간 입 니 다.매번 출석 할 수 있 을 때 이 시간 을 현재 시간 과 비교 할 수 있 습 니 다.만약 에 0 일이 차이 가 나 면 오늘 출석 했 음 을 설명 합 니 다.(이 출석 은 24 시간 안에 한 번 만 출석 할 수 있 습 니 다.즉,두 번 의 출석 시간 은 24 시간 이상 차이 가 납 니 다)하루 와 같 으 면 오늘 출석 할 수 있 습 니 다.만약 에 2 일과 그 이상 이면 누락 된 것 을 설명 합 니 다.
타임 스탬프 의 판단 을 통 해 상태 표를 신속하게 업데이트 하고 출석 할 수 있 을 때 사용자 포인트 표를 조작 합 니 다.즉,사용자 포 인 트 를 업데이트 합 니 다.
구체 적 인 코드 는 다음 과 같다.

<?php
$user_id=@$_REQUEST['user_id'];
//  :                
//$begin_time      
//$end_time      
function timediff($begin_time,$end_time)
{
   if($begin_time < $end_time){
     $starttime = $begin_time;
     $endtime = $end_time;
   }else{
     $starttime = $end_time;
     $endtime = $begin_time;
   }
   //    
   $timediff = $endtime-$starttime;
   $days = intval($timediff/86400);
   //     
   $remain = $timediff%86400;
   $hours = intval($remain/3600);
   //     
   $remain = $remain%3600;
   $mins = intval($remain/60);
   //    
   $secs = $remain%60;
   $res = array("day" => $days,"hour" => $hours,"min" => $mins,"sec" => $secs);
   return $res;
}
function upuserscore($current_total_day){
$user_id=@$_REQUEST['user_id'];
//          ini  
  $ary=parse_ini_file('db.ini');
  $db_login_name=base64_decode($ary['db_login_name']);
  $db_login_password=base64_decode($ary['db_login_password']);
  $db_host=base64_decode($ary['db_host']);
  $db_name=base64_decode($ary['db_name']);
//     
 $scorelink=mysqli_connect($db_host,$db_login_name,$db_login_password);
mysqli_select_db($scorelink,$db_name); //     
//                               
$scoreq = "SELECT * FROM user_score WHERE user_id=$user_id"; //SQL    
    mysqli_query($scorelink,"SET NAMES utf8");
    $rs = mysqli_query($scorelink,$scoreq); //     
    if(!$rs){
        exit(json_encode(array('status'=>"success",'code'=>"1",'error'=>mysqli_error($scorelink))));
    }
    if(mysqli_num_rows($rs)){//               
      $total_score="";
       while($row = mysqli_fetch_row($rs)) {
      $total_score=$row[4];
      }
      $scoreusdateq = "UPDATE user_score SET user_total_score ='98' WHERE user_id=$user_id;"; //  
      mysqli_query($scorelink,"SET NAMES utf8");
      $ustaters = mysqli_query($scorelink,$scoreusdateq); //     
      if($ustaters ==1){
          exit(json_encode(array('status'=>"success",'code'=>"100")));
        mysqli_close($scorelink);//      
        exit();
      }else{
          exit(json_encode(array('status'=>"success",'code'=>"1")));
           mysqli_close($scorelink);//    
           exit();
      }
    }else{//                
      $scoreinsertq = "insert into user_score (user_id,user_total_score)values($user_id,10)"; //SQL    
      mysqli_query($scorelink,"SET NAMES utf8");
      $rs = mysqli_query($scorelink,$scoreinsertq); //     
      if(!$rs){
          exit(json_encode(array('status'=>"success",'code'=>"1",'error'=>mysqli_error($scorelink))));
      }
      if(strpos($q,"SELECT") === false){
          exit(json_encode(array('status'=>"success",'code'=>"100")));
      }
      mysqli_close($scorelink);//    
    }
}
//          ini  
  $ary=parse_ini_file('db.ini');
  $db_login_name=base64_decode($ary['db_login_name']);
  $db_login_password=base64_decode($ary['db_login_password']);
  $db_host=base64_decode($ary['db_host']);
  $db_name=base64_decode($ary['db_name']);
//     
 $link=mysqli_connect($db_host,$db_login_name,$db_login_password);
mysqli_select_db($link,$db_name); //     
//                               
$q = "SELECT * FROM user_signin WHERE user_id=$user_id"; //SQL    
    mysqli_query($link,"SET NAMES utf8");
    $rs = mysqli_query($link,$q); //     
    if(!$rs){
        exit(json_encode(array('status'=>"success",'code'=>"1",'error'=>mysqli_error($link))));
    }
    if(mysqli_num_rows($rs)){//               
      $last_time="";
      $total_day="";
       while($row = mysqli_fetch_row($rs)) {
      $last_time=$row[4]."<br/>";
      $total_day=$row[5];
    }
      //                                 
      $current_total_day=intval($total_day)+1;
      $current_day=time();
      $ary = timediff($last_time,$current_day);
    if($ary[day]==0){//     
       exit(json_encode(array('status'=>"success",'code'=>"5")));
        mysqli_close($link);//      
        exit();
    }else if($ary[day]==1){//    
      $usdateq = "UPDATE user_signin SET last_sign_time='$current_day', total_day='$current_total_day' WHERE user_id=$user_id;"; //  
      mysqli_query($link,"SET NAMES utf8");
      $ustaters = mysqli_query($link,$usdateq); //     
      if($ustaters ==1){
      upuserscore($current_total_day);
          //exit(json_encode(array('status'=>"success",'code'=>"100")));
        mysqli_close($link);//      
        exit();
      }else{
          exit(json_encode(array('status'=>"success",'code'=>"1")));
           mysqli_close($link);//    
         exit();
      }
    }else{//   
    $usdateq = "UPDATE user_signin SET last_sign_time='$current_day', total_day=1 WHERE user_id=$user_id;"; //  
    mysqli_query($link,"SET NAMES utf8");
    $ustaters = mysqli_query($link,$usdateq); //     
    if($ustaters ==1){
      upuserscore($current_total_day);
        //exit(json_encode(array('status'=>"success",'code'=>"100")));
      mysqli_close($link);//      
      exit();
    }else{
        exit(json_encode(array('status'=>"success",'code'=>"1")));
       mysqli_close($link);//    
       exit();
    }
  }
  }else{//          
    $current_day=time();
    $insertq = "insert into user_signin (user_id,last_sign_time,total_day)values($user_id,'$current_day',1)"; //SQL    
    mysqli_query($link,"SET NAMES utf8");
    $insertrs = mysqli_query($link,$insertq); //     
    if(strpos($insertrs,"SELECT") === false){//      
      upuserscore('1');
      //exit(json_encode(array('status'=>"success",'code'=>"100")));
      }
  }
  mysqli_close($link);//    
?>

더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기