Heim  >  Artikel  >  php教程  >  ThinkPHP kontinuierliche Anmeldung, kleiner Fall

ThinkPHP kontinuierliche Anmeldung, kleiner Fall

WBOY
WBOYOriginal
2016-10-09 08:32:231363Durchsuche

Eine kleine Funktion zum kontinuierlichen Check-in auf der Website!
Haben Sie bei der Website-Entwicklung jemals erlebt, dass Mitglieder Punkte für aufeinanderfolgende Anmeldungen erhalten? Ich habe beispielsweise eine Regel zum Hinzufügen von Punkten für aufeinanderfolgende Anmeldungen. Es sind einige Punkte zu beachten: (1) Kontinuierliche Check-Ins, die Häufigkeit muss akkumuliert werden, was die Beurteilung zwischen zwei Zeitstempeln beinhaltet (2) Ob es sich in diesem Fall natürlich um eine Anmeldung in diesem Monat handelt , die beiden Zeitstempel Das Urteil ist gelöst, aber Sie sollten auch auf diesen Punkt achten (3) Wenn es kontinuierlich ist, wird es um 1 addiert, andernfalls wird es auf 0 gelöscht, und wenn Sie sich noch nicht angemeldet haben, Es wird ein Anmeldedatensatz erstellt! Unten werde ich einen Code zur Implementierung der Anmeldung veröffentlichen. Jeder ist herzlich willkommen, gemeinsam zu lernen!
Tabellenstruktur:
ThinkPHP kontinuierliche Anmeldung, kleiner Fall
/**So implementieren Sie kontinuierliche Check-ins*/
öffentliche Funktion signList(){
/**Überprüfen Sie zunächst, ob es diesen Benutzer gibt*/
$m_id = $_GET['m_id'];
$sign = D('Sign')->where(array("m_id"=>$m_id))->limit(0)->find();
/**Wenn ja, beurteilen Sie den Zeitunterschied und berechnen Sie dann die Anzahl der Check-ins.*/
if($sign){
/**Der gestrige Zeitstempel-Zeitbereich*/
$t = time();
$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));
/**Der heutige Zeitstempel-Zeitbereich*/
// $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));
/**Stellen Sie fest, ob die letzte Check-in-Zeit innerhalb des gestrigen Zeitbereichs liegt*/
if($last_start_time<$sign['time']&&$sign['time']<$last_end_time){
$da['time'] = time();
$da['count'] = $sign['count'] 1;
/**Sie können hier auch einige Vorgänge hinzufügen, um zu bestimmen, an wie vielen aufeinanderfolgenden Tagen Sie sich angemeldet haben, und dann Punkte usw. hinzufügen.*/
D('Sign')->where(array("m_id"=>$m_id))->save($da);
}else{
/**Kehren Sie zum eingecheckten Betrieb zurück*/
$da['time'] = time();
$da['count'] = 0;
D('Sign')->where(array("m_id"=>$m_id))->save($da);
}
}else{
$data['m_id'] = $m_id;
$data['time'] = time();
$data['sign'] = 1;
$res = D("Sign")->add($data);
if($res){
/**Kehren Sie bei Erfolg zurück oder führen Sie einige Vorgänge durch, z. B. das Hinzufügen von Punkten*/
}
}
}

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