TP5框架實現簽到功能的方法分析_php實例

來源:腳本之家  責任編輯:小易  

另外一個帖子關閉還能把那15分拿回去吧?呵呵給你寫個大體框架吧,具體實施起來比較繁瑣,尤其是后臺驗證和數據庫這一塊【jQuery】('a.signin').click(function(){post('signin.php',{username:$(this).attr('id')},function(response){if(response='ok'){alert('獲得積分獎勵');}else {alert(response);}});});暈神1222">簽到【signin.php】phpif(isset($_POST['username'])){username=$_POST['username'];驗證用戶是否存在驗證用戶是否已經登錄驗證用戶是否已經簽到過如果上面全部通過,寫入數據,MySQL 為例result=mysql_query(。if(mysql_affected_rows($result)>0)exit('ok');elseexit('寫入數據時出現錯誤');}else {exit('沒有提供用戶名');}你可以復制粘貼這兩個文件先測試一下,signin.php 里面基本都加了注釋,所以現在輸出的肯定是 ok。至于那些驗證,還有數據庫,這要根據你網站的實際情況來寫www.13333515.buzz防采集請勿采集本網。

本文實例講述了TP5框架實現簽到功能的方法。分享給大家供大家參考,具體如下:

tp5中調用common自定義的函數的方法如下: 1、在common模塊自動載入(function.php自動載入)如果在Common/Common/目錄下下面建立一個function.php 文件,那么框架會自動加載此文件。 注意:如果我們不是在common模塊的common文件夾下面寫function.p

基于tp5 模型的一個簽到功能;

phpstudy是php環境,安裝好了以后把tp5解壓到www目錄下

由于存儲所有的簽到日期數據庫會非常龐大,所以簽到日期只存儲近三個月的。

不加載模板 只做接口 數據通過$this->ajaxrerturn(); 返回給請求者 前端所有數據通過ajax或者使用vue等數據綁定類的框架 通過js把獲取到的數據渲染到頁面 這樣前端就不會有后端代碼 這就是前后端分離

具體功能:

一,找到/public/.htaccess文件,如果你的入口文件已經移動到根目錄下,那么你的.htaccess文件也要剪切到根目錄下,總之要確保.htaccess跟入口的index.php保持同級。 二,根據你的php環境分別設置.htaccess文件: Apache: Options +FollowSymli

1、記錄最近一次的簽到時間

注意,ajax已經設定發送接收json格式數據。 所以TP5返回json格式 return json(['code'=>'5']);

2、每次簽到都會添加15積分

3、有連續簽到的記錄

CREATE TABLE `sp_sign` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵', `times` datetime DEFAULT NULL COMMENT '最近一次簽到時間', `userid` int(11) DEFAULT NULL COMMENT '用戶id', `days` tinyint(6) NOT NULL DEFAULT '0' COMMENT '連續簽到的天數', `number` decimal(10,0) NOT NULL DEFAULT '0' COMMENT '當月簽到給的積分', `one` varchar(255) DEFAULT NULL COMMENT '當月簽到的日期,用“,”隔開', `two` varchar(255) DEFAULT NULL COMMENT '上個月簽到的日期,用“,”隔開', `three` varchar(255) DEFAULT NULL COMMENT '上上個月簽到的日期,用“,”隔開', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/** * 用戶簽到 * @param array $userid 用戶id */ public function add($userid) { $data = Db::name('sign')->where('userid',$userid)->select(); if(count($data) == 0) //沒有該用戶的簽到記錄 { $query4 = Db::name('sign')->insert(['times'=>date('Y-m-d H:i:s'),'userid'=>$userid,'days'=>1,'number'=>'15','one'=>date('d',time())]); return 1; } else { //判斷今天是否簽到 $todayBegin=date('Y-m-d'." 00:00:00"); $todayEnd= date('Y-m-d'." 23:59:59"); $isexit = Db::name('sign')->field('times')->where(['userid'=>$userid])->where('times','between',[$todayBegin,$todayEnd])->select(); if(count($isexit) == 1) //今日已簽到 { return 0; } else //今日未簽到 { $times = Db::name('sign')->where('userid',$userid)->field('times')->select(); $time = strtotime($times[0]['times']); if((time()-$time > 24*60*60)) //上次簽到時間大于24小時,連續簽到天數清零 { $query = Db::name('sign')->where('userid',$userid)->update(['days'=>1]); } else //上次簽到時間小于24小時,連續簽到次數加1 { $query = Db::name('sign')->where('userid',$userid)->setInc('days'); } //更新上次簽到時間和簽到積分 $query1 = Db::name('sign')->where('userid',$userid)->update(['times'=>date('Y-m-d H:i:s')]); $query2 = Db::name('sign')->where('userid',$userid)->setInc('number', 15); $sqldate = date('m',$time); //上次簽到日期的月份 $nowdate = date('m',time()); //當前月份 //記錄本次簽到日期 if($sqldate != $nowdate) //上次簽到日期與本次簽到日期月份不一樣 { $oldtime = $times[0]['times']; $onetime=date("Y-m-d H:i:s", strtotime("-1 month")); //獲取前1個月的時間,獲取格式為2016-12-30 13:26:13 $twotime=date("Y-m-d H:i:s", strtotime("-2 month")); //獲取前2個月的時間 $threetime=date("Y-m-d H:i:s", strtotime("-3 month")); //獲取前3個月的時間 $rs = Db::name('sign')->where('userid',$userid)->field('one,two,three')->select(); if($oldtime < $onetime && $oldtime >= $twotime) //月份間隔 大于1個月,小于2個月 { $one = date('d',time()); $two = $rs[0]['one']; $three = $rs[0]['two']; } elseif($oldtime < $twotime && $oldtime >= $threetime) //月份間隔 大于2個月,小于3個月 { $one = date('d',time()); $two = ''; $three = $rs[0]['one']; } elseif($oldtime < $threetime) //月份間隔 大于3個月 { $one = date('d',time()); $two = ''; $three = ''; } $query3 = Db::name('sign')->where('userid',$userid)->update(['one'=>$one,'two'=>$two,'three'=>$three]); } else //上次簽到日期與本次簽到日期月份一樣 { $one = Db::name('sign')->where('userid',$userid)->field('one')->select(); $arr[] = $one[0]['one']; $arr[] = date('d',time()); $newones = implode(",",$arr); $query3 = Db::name('sign')->where('userid',$userid)->update(['one'=>$newones]); } return 1; } } }

更多關于thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。

說實話,我最頭疼看見很多文檔似的解說。上干貨一個簡單請求的接口:開頭導入文件use think\\Request;一個post的簡單的請求:public function test(){request=Request:instance();a=$request->post('a');}如果是get,param等,相應的把post改成這個就好內容來自www.13333515.buzz請勿采集。


  • 本文相關:
  • thinkphp實現簽到功能的方法
  • tp5(thinkphp5)框架數據庫db增刪改查常見操作總結
  • tp5(thinkphp5)框架實現多數據庫查詢的方法
  • thinkphp5實現數據庫添加內容的方法
  • tp5(thinkphp5)框架連接數據庫的方法示例
  • thinkphp5框架數據庫連貫操作之cache()用法分析
  • thinkphp5框架實現多數據庫連接,跨數據連接查詢操作示例
  • thinkphp5框架實現獲取數據庫數據到視圖的方法
  • thinkphp5.1框架數據庫鏈接和增刪改查操作示例
  • php利用pdo_odbc實現連接數據庫示例【基于thinkphp5.1搭建的項目】
  • 基于thinkphp5框架使用querylist爬取并存入mysql數據庫操作示例
  • thinkphp5.0框架實現切換數據庫的方法分析
  • php集成百度ueditor 1.4.3
  • thinkphp 中的volist標簽在ajax操作中的特殊性(推薦)
  • php設計模式之工廠模式用法經典實例分析
  • 微信營銷平臺系統–刮刮樂的開發
  • thinkphp3.2.3 分頁代碼分享
  • 深入http響應狀態碼速查表的詳解
  • php開發中常用的十個代碼樣例
  • laravel 實現劃分admin和home 模塊分組
  • 在laravel中使用with實現動態添加where條件
  • php 實現文件壓縮解壓操作的方法
  • PHP 中TP5 Request 請求對象的實例詳解
  • jquery+php 如何實現簽到程序?
  • TP5框架如何order自定義排序
  • thinkphp5.0如何跟微擎結合,就是在TP里面如何使用...
  • tp5怎么調用common里面自定義的函數
  • Tp5和phpstudy做網站步驟
  • 大佬們tp框架下php怎么實現前后端分離
  • tp5框架index.php入口文件隱藏?
  • tp5 ajax獲取PHP中 return 的值
  • PHP進階:面向對象及TP5框架初識
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全php基礎php技巧php實例php文摘php模板首頁php編程php實例thinkphp入門教程thinkphp模板操作技巧總結thinkphp常用方法總結codeigniter入門教程ci(codeigniter)框架進階教程zend framework框架入門教程php模板技術總結thinkphp實現簽到功能的方法tp5(thinkphp5)框架數據庫db增刪改查常見操作總結tp5(thinkphp5)框架實現多數據庫查詢的方法thinkphp5實現數據庫添加內容的方法tp5(thinkphp5)框架連接數據庫的方法示例thinkphp5框架數據庫連貫操作之cache()用法分析thinkphp5框架實現多數據庫連接,跨數據連接查詢操作示例thinkphp5框架實現獲取數據庫數據到視圖的方法thinkphp5.1框架數據庫鏈接和增刪改查操作示例php利用pdo_odbc實現連接數據庫示例【基于thinkphp5.1搭建的項目】基于thinkphp5框架使用querylist爬取并存入mysql數據庫操作示例thinkphp5.0框架實現切換數據庫的方法分析php集成百度ueditor 1.4.3thinkphp 中的volist標簽在ajax操作中的特殊性(推薦)php設計模式之工廠模式用法經典實例分析微信營銷平臺系統–刮刮樂的開發thinkphp3.2.3 分頁代碼分享深入http響應狀態碼速查表的詳解php開發中常用的十個代碼樣例laravel 實現劃分admin和home 模塊分組在laravel中使用with實現動態添加where條件php 實現文件壓縮解壓操作的方法php獲取數組長度的方法(有實例)微信公眾平臺實現獲取用戶openid教你如何使用php session使用php生成二維碼的兩種方法(帶php發送get、post請求的6種方法簡php中把stdclass object轉array的微信公眾平臺網頁授權獲取用戶基laravel框架數據庫curd操作、連貫php刪除數組中空值的方法介紹php從數組中刪除元素的四種方法實codeigniter框架中_remap()使用方法2例微信公眾號支付之坑:調用支付jsapi缺少參詳解php用curl調用接口方法,get和post兩thinkphp5使用laypage分頁插件實現列表分php二維數組轉成字符串示例laravel高級的join語法詳解以及使用join多yii框架響應組件用法實例分析制作安全性高的php網站的幾個實用要點thinkphp3.2.2實現持久登錄(記住我)功能的
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.13333515.buzz All Rights Reserved
    3排列五开奖结果