前端到後臺ThinkPHP開發整站(2)

  我此次使用的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

相關文章
相關標籤/搜索