홈페이지에서 지속적인 체크인을 위한 작은 기능!
웹사이트 개발을 하다 보면 연속 로그인으로 포인트를 받는 회원을 본 적이 있나요? 주의할 점은 다음과 같습니다. (1) 연속 체크인, 횟수가 누적되어야 하며 이는 두 타임스탬프 사이의 판단을 포함합니다. (2) 이번 달 로그인 여부는 물론 이 경우입니다. , 2개의 타임스탬프가 판정이 풀렸는데 이 점에도 주의해야 합니다. (3) 연속이면 1씩 더해지고, 그렇지 않으면 0으로 클리어되며, 이전에 로그인하지 않은 경우, 로그인 기록이 생성됩니다! 아래에서는 로그인을 구현하는 코드를 게시하겠습니다. 누구나 함께 배울 수 있습니다.
테이블 구조:
/**지속적인 체크인을 구현하는 방법*/
공용 함수 signList(){
/**먼저 이 사용자가 있는지 확인하세요.*/
$m_id = $_GET['m_id'];
$sign = D('Sign')->where(array("m_id"=>$m_id))->limit(0)->find();
/**있다면 시차를 판단하여 체크인 횟수를 처리합니다.*/
if($sign){
/**어제의 타임스탬프 시간 범위*/
$t = 시간();
$last_start_time = mktime(0,0,0,date("m",$t),date("d",$t)-1,date("Y",$t));
$last_end_time = mktime(23,59,59,date("m",$t),date("d",$t)-1,date("Y",$t));
/**오늘의 타임스탬프 시간 범위*/
// $now_start_time = mktime(0,0,0,date("m",$t),date("d",$t),date("Y",$t));
// $now_end_time = mktime(23,59,59,date("m",$t),date("d",$t),date("Y",$t));
/**마지막 체크인 시간이 어제 시간 범위 내에 있는지 확인*/
if($last_start_time<$sign['time']&&$sign['time']<$last_end_time){
$da['시간'] = 시간();
$da['count'] = $sign['count']+1;
/**여기에 몇 가지 작업을 추가하여 로그인한 연속 일수를 확인한 다음 포인트 등을 추가할 수도 있습니다.*/
D('Sign')->where(array("m_id"=>$m_id))->save($da);
}그밖에{
/**체크인 작업으로 돌아가기*/
$da['시간'] = 시간();
$da['count'] = 0;
D('Sign')->where(array("m_id"=>$m_id))->save($da);
}
}그밖에{
$data['m_id'] = $m_id;
$data['시간'] = 시간();
$data['sign'] = 1;
$res = D("부호")->add($data);
if($res){
/**성공하면 반품하거나 포인트 추가 등 일부 절차를 처리합니다.*/
}
}
}