thinkphp를 사용하여 로그인하고 포인트를 받으세요. 프런트엔드 디스플레이는 포함되지 않습니다. 오늘 로그인이 있는지 여부만 확인합니다. 필요한 경우 직접 추가할 수 있습니다.
1. 먼저 테이블 구조를 첨부하여 직접 사용하세요.]/**<br>
* tableName = 前缀_user_sing_in<br>
* id<br>
* uid<br>
* username<br>
* create_time int 10 签到时间<br>
* sign_in_year 签到,年<br>
* sign_in_month 签到,月<br>
* sign_in_day 签到,日<br>
* get_integral 签到获得积分数<br>
* sign_in_con_days 连续签到天数 default=1<br>
*/
2. 로그인 구현 방법 및 클래스 <?php<br />
/**<br />
*PhpStorm에서 제작했습니다.<br />
* 저자 : 즈이, 봄바람<br />
* 설명 : 로그인, 포인트교환, 로그인이 필요한 카테고리입니다 <br />
* 일시 : 2016/10/19<br />
* 시간 : 16:02<br />
*/<br />
네임스페이스 HomeController;<br />
//ThinkController를 사용합니다.<br />
IntegralController 클래스는 HomeController를 확장합니다<br />
{<br />
비공개 $uid = null;<br />
비공개 $where = array();<br />
/**<br />
*시공방법<br />
* 자동으로 uid 로드, uid 조건 초기화 <br />
*/<br />
공개 함수 _initialize()<br />
{<br />
$this -> uid = $this -> check_login();<br>
$this -> where['uid'] = $this->uid;<br>
}<br>
<br>
/**<br>
* 로그인 후 포인트 적립 방법<br>
*/<br>
공개 함수 sign_in()<br>
{<br>
$get_integral = 2; //로그인하고 포인트 받으세요<br>
$get_add_integral = 5; //N일 연속 로그인 시 추가 포인트 지급<br>
$continuous_day = 7; //연속 며칠 동안 로그인하면 추가 포인트를 받을 수 있나요<br>
//************************************************ ******************<br>
$start_time = strtotime(date('Y-m-d'));//오늘 이른 아침 타임스탬프<br>
$year = date("Y") //오늘-연도<br>
$month = date("m"); //오늘-월<br>
$day = date("d") //오늘-요일<br>
//************************************************ ******************<br>
$yesterday = strtotime('-1 day'); //어제의 타임스탬프 기준<br>
$yesterday_year = date('Y',$yesterday); //어제-연도<br>
$yesterday_month = date('m',$yesterday); //어제월<br>
$yesterday_day = date('d',$yesterday); //어제<br>
//************************************************ ******************<br>
//오늘 체크인했는지 먼저 확인<br>
$Model = M('user_sign_in');<br>
$record_count = $Model -> where(array('uid'=>$this->uid,'create_time'=>array('EGT',$start_time))) -> 🎜>
If($record_count)<br>
$this -> error('오늘 로그인했습니다');<br>
//************************************************ ******************<br>
//데이터 삽입 준비<br>
$data = 배열(<br>
'uid' => $this ->
'sign_in_year' => $연도, //연도<br>
'sign_in_month' => $월,//월<br>
'sign_in_day' => $일,//일<br> '사용자 이름' => $_SESSION['userInfo']['사용자 이름'],<br>
'get_integral' => $get_integral, //기본적으로 로그인하면 포인트를 받게 됩니다<br>
'create_time' => 시간(),<br>
);<br>
$msg = "로그인 성공, {$get_integral} 포인트 획득";<br>
//**************************************************** * **********<br>
//어제 체크인 기록 확인<br>
$where = 배열(<br>
'uid' => $this ->
'sign_in_year' => $yesterday_year,<br>
'sign_in_month' => $yesterday_month,<br>
'sign_in_day' => $yesterday_day,<br>
);<br>
$yesterday_record = $Model -> where($where) ->
//예, 연속 체크인 일수에 1을 더한 값으로 설정하고 연속 체크인이 기준에 도달했는지 계속 판단합니다 <br>
If($yesterday_record){<br>
//연속 체크인 일수 + 1 설정<br>
$data['sign_in_con_days'] = $yesterday_record['sign_in_con_days'] +1;<br>
If($yesterday_record['sign_in_con_days'] >= $continuous_day){<br>
//지속 체크인 요건을 충족하고 추가 포인트를 받으세요<br>
$data['get_integral'] = $get_integral + $get_add_integral;<br>
$ Msg = "로그인 성공, {$ get_integral} 포인트 획득, 계속 로그인하여 {$ Continuous_Day} 시간 동안 {$ get_add_integral} 포인트 획득";
}<br>
}<br>
//************************************************ ******************<br>
//어제 로그인 안함, 논리적 처리 안함, 로그인 전달 지점 실행, 기본 연속 로그인 일수는 1일임 <br>
If($모델 -> 추가($data)){<br>
//사용자 포인트 증가<br>
M('사용자') -> where($this->where) -> setInc('integral',$data['get_integral']);<br>
$this -> 성공($msg,U('색인/색인'),3);<br>
}<br>
$this -> error('로그인 실패');<br>
}<br>
<br>
}<br><br>직접 사용하려면 호출 시 sign_in() 메서드를 직접 호출하세요<br>
오늘 로그인했는지 확인하는 방법
/**
* 로그인 탐색
* 오늘 로그인했는지 확인하세요
*/<br>
공개 함수 login_nav(){<br>
$start_time = strtotime(date('Y-m-d'));//오늘 이른 아침 타임스탬프<br>
$is_sign_in = 0;//초기화 로그인 안됨<br>
//오늘 체크인했는지 먼저 확인<br>
$Model = M('user_sign_in');<br>
//로그인 기록<br>
$sign_in_record = $Model -> where(array('uid'=>$_SESSION['userInfo']['id'],'create_time'=>array('EGT',$start_time))) -> ;찾기();<br>
if($sign_in_record){<br>
$is_sign_in = 1;<br>
//필요에 따라 $sign_in_record 또는 연속 로그인 일수를 전달합니다<br>
$this -> 할당('sign_in_con_days',$sign_in_record['sign_in_con_days']);<br>}<br>
$this -> 할당('is_sign_in',$is_sign_in);<br>
//개인용<br>
$this->display('Widget/login_nav');<br>
}
exit;를 추가했기 때문에 위 코드에서 직접 $this -> 아래 코드를 종료할 필요가 없습니다. 사용할 때 코드를 추가할지 아니면 죽을지;
블로그에도 썼어요
http://www.xstnet.com/article-79.html
http://www.xstnet.com/article-79.html
직접 사용해도 문제 없습니다