Heim  >  Artikel  >  php教程  >  So erhalten Sie Punkte, indem Sie sich bei thinkphp für Ihren eigenen Gebrauch anmelden

So erhalten Sie Punkte, indem Sie sich bei thinkphp für Ihren eigenen Gebrauch anmelden

WBOY
WBOYOriginal
2016-10-22 00:00:281994Durchsuche

Verwenden Sie thinkphp, um sich anzumelden und Punkte zu erhalten. Es bestimmt nur, ob eine Anmeldung heute erfolgt. Sie können diese bei Bedarf selbst hinzufügen1. Hängen Sie zuerst die Tabellenstruktur für Ihren eigenen Gebrauch an]/**<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 Anmeldeimplementierungsmethoden und -klassen <?php<br /> /**<br /> * Erstellt von PhpStorm.<br /> *Autor: Zui, Spring Breeze<br /> * Beschreibung: Diese Kategorie erfordert eine Anmeldung, das Einlösen von Benutzerpunkten und eine Anmeldung <br /> * Datum: 19.10.2016<br /> * Zeit: 16:02<br /> ​*/<br /> Namespace HomeController;<br /> //ThinkController verwenden;<br /> Klasse IntegralController erweitert HomeController<br /> {<br /> Privat $uid = null;<br /> privat $where = array();<br /> /**<br /> *Bauweise<br /> * UID automatisch laden, UID-Bedingungen initialisieren<br /> ​​*/<br /> Öffentliche Funktion _initialize()<br /> {<br /> $this -> uid = $this -> check_login();<br> $this -> where['uid'] = $this->uid;<br> }<br> <br> /**<br> * So erhalten Sie Punkte, indem Sie sich anmelden<br> ​​*/<br> Öffentliche Funktion sign_in()<br> {<br> $get_integral = 2; //Anmelden und Punkte sammeln<br> $get_added_integral = 5; //Zusätzliche Punkte werden für die Anmeldung an N aufeinanderfolgenden Tagen vergeben<br>         $continuous_day = 7; //An wie vielen aufeinanderfolgenden Tagen können Sie sich anmelden, um zusätzliche Punkte zu erhalten<br> //************************************************** ******************<br> $start_time = strtotime(date('Y-m-d'));//Heutiger Zeitstempel am frühen Morgen<br>        $year = date("Y"); //Heute-Jahr<br> $month = date("m"); //Heute-Monat<br> $day = date("d"); //Heute-Tag<br> //************************************************** ******************<br> $yesterday = strtotime('-1 day'); //Zeitstempelbasis von gestern<br> $yesterday_year = date('Y',$yesterday); //Yesterday-Year<br> $yesterday_month = date('m',$yesterday); //Yesterday-month<br> $yesterday_day = date('d',$yesterday); //Yesterday-day<br> //************************************************** ******************<br> //Überprüfen Sie zunächst, ob Sie heute eingecheckt haben<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('Heute angemeldet');<br> //************************************************** ******************<br> //Bereit zum Einfügen von Daten<br> $data = array(<br> ‚uid‘ => $this -> uid,<br> ‚sign_in_year‘ => $year, //year<br> ‚sign_in_month‘ => $month,//month<br>          'sign_in_day' => $day,//Day<br>          'username' => $_SESSION['userInfo']['username'],<br>            'get_integral' => $get_integral, //Standardmäßig erhalten Sie Punkte, wenn Sie sich anmelden<br>           'create_time' => time(),<br> );<br>          $msg = "Erfolgreich angemeldet, {$get_integral} Punkte erhalten";<br> //**************************************************** ***********<br> //Überprüfen Sie den Check-in-Datensatz von gestern<br> $where = array(<br> ‚uid‘ => $this -> uid,<br>           'sign_in_year' => $yesterday_year,<br> ‚sign_in_month‘ => $yesterday_month,<br>          'sign_in_day' => $yesterday_day,<br> );<br> $yesterday_record = $Model -> where($where) -> //Ja, legen Sie die Anzahl der aufeinanderfolgenden Check-in-Tage plus 1 fest und beurteilen Sie weiterhin, ob der kontinuierliche Check-in den Standard erreicht hat <br> If($yesterday_record){<br>               //Legen Sie die Anzahl aufeinanderfolgender Check-in-Tage plus 1 fest<br>          $data['sign_in_con_days'] = $yesterday_record['sign_in_con_days'] 1;<br> If($yesterday_record['sign_in_con_days'] >= $continuous_day){<br>                          //Haben die Anforderung des kontinuierlichen Check-ins erreicht und erhalten zusätzliche Punkte<br>              $data['get_integral'] = $get_integral $get_added_integral;<br> $ Msg = „Anmeldung erfolgreich, {$ get_integral} Punkte erhalten, fortlaufend anmelden {$ Continuous_Day} Zeit, um {$ get_added_integral} Punkte zu erhalten“;          }<br> }<br> //************************************************** ******************<br> // Gestern keine Anmeldung durchgeführt, keine logische Verarbeitung durchgeführt, die Anmeldezustellungspunkte ausgeführt, die Anzahl der fortlaufenden Anmeldetage war standardmäßig 1 <br> If($Model -> add($data)){<br>               //Benutzerpunkte steigen<br> M('user') -> where($this->where) -> setInc('integral',$data['get_integral']);<br>            $this -> success($msg,U('Index/index'),3);<br> }<br> $this -> error('Anmeldung fehlgeschlagen');<br> }<br> <br> }<br><br>Für Ihren eigenen Gebrauch rufen Sie beim Aufruf einfach die Methode sign_in() direkt auf So überprüfen Sie, ob Sie sich heute angemeldet haben

/**
* Login-Navigation * Überprüfen Sie, ob Sie sich heute angemeldet haben<br> ​*/<br> öffentliche Funktion login_nav(){<br> $start_time = strtotime(date('Y-m-d'));//Heutiger Zeitstempel am frühen Morgen<br> $is_sign_in = 0;//Initialisierung nicht angemeldet<br> //Überprüfen Sie zunächst, ob Sie heute eingecheckt haben<br> $Model = M('user_sign_in');<br> //Anmeldedatensatz<br> $sign_in_record = $Model -> where(array('uid'=>$_SESSION['userInfo']['id'],'create_time'=>array('EGT',$start_time))) -&gt ;find();<br> if($sign_in_record){<br>        $is_sign_in = 1;<br> //Übergeben Sie $sign_in_record oder die Anzahl aufeinanderfolgender Anmeldetage nach Bedarf<br> $this -> attachment('sign_in_con_days',$sign_in_record['sign_in_con_days']);<br>}<br> $this -> attachment('is_sign_in',$is_sign_in);<br> //Für den persönlichen Gebrauch<br> $this->display('Widget/login_nav');<br> }Da ich in meinen Fehler- und Erfolgsmethoden „exit;“ hinzugefügt habe, besteht im obigen Code keine Notwendigkeit, den folgenden Code zu beenden Code bei der Verwendung. Ob Exit oder Die hinzugefügt werden soll;
Ich habe es auch in meinem Blog geschrieben
http://www.xstnet.com/article-79.html
http://www.xstnet.com/article-79.html
Kein Problem, wenn Sie es selbst verwenden

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn