> php教程 > php手册 > 본문

스스로 사용하기 위해 thinkphp에 로그인하여 포인트를 얻는 방법

WBOY
풀어 주다: 2016-10-22 00:00:28
원래의
1991명이 탐색했습니다.

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))) -&gt ;찾기();<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
직접 사용해도 문제 없습니다

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿