我此次使用的ThinkPHP版本是:3.2.3版本,還有會使用到一個彈出層插件,叫 layer,官網地址是:http://layer.layui.com/。廢話很少說,進入擼碼環節。javascript
一、通用方法編寫php
這個是後端公共方法,如今暫時寫兩個方法,再日後開發想到有須要的話,就會繼續添加更多的公共方法。前端
<?php /** * JSON數據返回 */ function jsonResult($status,$message,$data){ $result=array( 'status'=>$status, 'message'=>$message, 'data'=>$data ); exit(json_encode($result)); } /** * MD5加密密碼 */ function getMd5Password($password){ return md5($password.C('MD5_PRE')); } ?>
公共彈出JS方法封裝java
var dialog = { /** * 錯誤彈出層 * @param {String} 內容 */ error: function(message) { layer.open({ content: message, icon: 2, title: '錯誤提示' }); }, /** * 成功彈出層 * @param {String} 內容 * @param {String} 跳轉地址 */ success: function(message, url) { layer.open({ content: message, icon: 1, yes: function() { location.href = url; } }); }, /** * 確認彈出層 * @param {String} 內容 * @param {String} 跳轉地址 */ confirm: function(message, url) { layer.open({ content: message, icon: 3, btn: ['是', '否'], yes: function() { location.href = url; } }); }, /** * 無需跳轉到指定頁面的確認彈出層 * @param {string} 內容 */ toconfirm: function(message) { layer.open({ content: message, icon: 3, btn: ['肯定'] }); }, /** * 加載層 */ load:function(){ var index = layer.load(1, { shade: [0.6,'#000'] //0.1透明度的白色背景 }); return index; } }
二、登陸功能:git
後臺用戶操做類,添加在Model層,主要用於一些數據操做github
<?php namespace Common\Model; use Think\Model; /** * 後臺用戶操做類 */ class AdminModel extends Model{ private $_db=null; public function __construct(){ $this->_db=M('admin'); } /** * 根據用戶名獲取用戶信息 * $username string 用戶名 */ public function getAdminByUserName($username=''){ $ret=$this->_db->where("user_name='{$username}'")->find(); return $ret; } /** * 根據adminid更新數據 * $id int id * $data object 需更新的數據 */ public function updateByAdminId($id,$data){ if(!$id || !is_numeric($id)){ throw_exception("ID不合法"); } if(!$data || !is_array($data)){ throw_exception('更新的數據不合法'); } return $this->_db->where("admin_id={$id}").save($data); } } ?>
登陸功能後端實現邏輯json
<?php namespace Admin\Controller; use Think\Controller; class LoginController extends Controller{ public function index(){ if(session('adminUser')){ $this->redirect('/admin.php?c=index'); } $this->display(); } public function check(){ $username=$_POST['username']; $password=$_POST['password']; if(!trim($username)){ return jsonResult(0, '用戶名不能爲空'); } if(!trim($password)){ return jsonResult(0, '密碼不能爲空'); } $ret=D('Admin')->getAdminByUsername($username); if(!ret || $ret['status']!=1){ return jsonResult(0, '該用戶不存在'); } if($ret['password']!=getMd5Password($password)){ return jsonResult(0, '用戶名或密碼錯誤'); } D("Admin")->updateByAdminId($ret['admin_id'],array('last_login_time'=>time())); session('adminUser',$ret); return jsonResult(1, '登陸成功'); } } ?>
前端JS登陸邏輯實現後端
var login={ check:function(){ //獲取登陸頁面中的用戶名 和 密碼 var username=$('input[name="username"]').val(), password=$('input[name="password"]').val(); if(!username){ dialog.error('用戶名不能爲空'); } if(!password){ dialog.error('密碼不能爲空'); } var url="/index.php?m=admin&c=login&a=check", data={ "username":username, "password":password }; var load = dialog.load(); $.post(url,data,function(result){ layer.close(load); if(result.status==0){ return dialog.error(result.message); } if(result.status==1){ return dialog.success(result.message,'/admin.php?c=index'); } },'JSON'); } }
今天就簡單的作到這裏了,項目的開始,造輪子的時間比較長,輪子造好了,車就能夠開快了!(๑╹◡╹)ノ"""session
源碼地址:https://github.com/YoZiLin/TP-CMSpost