- 7月 09 週五 201009:09
置頂常用連結
- 8月 26 週日 201211:51
讀寫檔案
將讀寫改為實際檔案,再用讀檔的方式載入。
$file = fopen(FCPATH."/ajax/rand_list.json","w");
fputs($file,json_encode($list));
fclose($file);
$file = fopen(FCPATH."/ajax/rand_list.json","w");
fputs($file,json_encode($list));
fclose($file);
- 8月 24 週五 201213:24
codeigniter去index.php
config檔底下:
$config['index_page'] = '';
$config['index_page'] = '';
- 7月 24 週二 201220:12
Codeigniter系統開發佈署筆記(1)
基於久了又會忘記,趕快查一查記錄在此。
首先是Controller繼承。
置於application\core 底下
首先是Controller繼承。
置於application\core 底下
- 2月 22 週三 201223:09
jquery 紀錄
簡單來說我是要透過固定格式的網址,運用span(display:none)放參數去組合出連結。
然後運用css的方式製作按鈕,html會很乾淨,連結透過jquery產生,css製作美觀按鈕。
html
然後運用css的方式製作按鈕,html會很乾淨,連結透過jquery產生,css製作美觀按鈕。
html
- 12月 28 週三 201114:07
自己弄的jQuery ajax查詢 - 整合jQuery pager
這不是一般常搜尋到的jquery pager,js貼在最後。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>網頁標題</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript" language="javascript">
google.load("jquery", "1.5");
google.load("jqueryui", "1.5.2");
</script>
<script type="text/javascript" language="javascript" src="js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="js/jquery.pager.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
var pages_click;//用來傳遞
$("#per").change(function(){
ejajax();
})
$("input.os").blur(function(){
$("#dis_st").val(0);
$("#loading").stop();
//加入緩幾秒
ejajax();
})
PageClick = function(pageclickednumber) {
$("div.pager").pager({ pagenumber: pageclickednumber, pagecount: 15,
buttonClickCallback: PageClick});
pages_click = pageclickednumber;
ejajax("pages");
}
$("#sub").click(function(){
$("tr").remove(".db_list");
$("tr").remove(".s_list");
$("#dis_st").val(0);
ejajax();
})
$("input.2page").click(function(){
$("tr").remove(".db_list");
$("tr").remove(".s_list");
ejajax("to");
})
$("tr.s_list").hover(function(){
$("tr").remove(".db_list");
$("tr").remove(".s_list");
ejajax("to");
})
function ejajax(type){
$("tr").remove(".db_list");
$("tr").remove(".s_list");
var sSearch = $("#sSearch").val();
var sSearch_1 = $("#sSearch_1").val();
var sSearch_2 = $("#sSearch_2").val();
var sSearch_3 = $("#sSearch_3").val();
var sSearch_4 = $("#sSearch_4").val();
var sSearch_5 = $("#sSearch_5").val();
switch(type){
default:
var dis_st = (parseInt($("#dis_st").val())<=0)?0:parseInt($("#dis_st").val());
var data = {
"sSearch": sSearch,
"sSearch_1" : sSearch_1,
"sSearch_2" : sSearch_2,
"sSearch_3" : sSearch_3,
"sSearch_4" : sSearch_4,
"sSearch_5" : sSearch_5,
"dis_st" : $("#dis_st").val(),
"dis_len" : $("#per").val()
}
break;
case "to":
var a1 = $("#per").val();
var a2 = ($("input.goto").val()>parseInt($("a.total_page").text()))?parseInt($("a.total_page").text()):$("input.goto").val();
var dis_st = a1*a2-a1;
$("#dis_st").val(dis_st);
var data = {
"sSearch": sSearch,
"sSearch_1" : sSearch_1,
"sSearch_2" : sSearch_2,
"sSearch_3" : sSearch_3,
"sSearch_4" : sSearch_4,
"sSearch_5" : sSearch_5,
"dis_st" : dis_st,
"dis_len" : $("#per").val()
}
break;
case "pages":
$("#dis_st").val(dis_st);
var a1 = $("#per").val();
var a2 = (pages_click>parseInt($("a.total_page").text()))?parseInt($("a.total_page").text()):pages_click;
var dis_st = a1*a2-a1;
var data = {
"sSearch": sSearch,
"sSearch_1" : sSearch_1,
"sSearch_2" : sSearch_2,
"sSearch_3" : sSearch_3,
"sSearch_4" : sSearch_4,
"sSearch_5" : sSearch_5,
"dis_st" : dis_st,
"dis_len" : $("#per").val()
}
break;
};
$("#loading").fadeIn("slow");
$.ajax({
url: "ejquery-.php",
data:data,
type: "POST",
dataType: "json",
success: function(Ddata) {
var i = 0;
var total = Ddata["iTotalRecords"];
var total = Ddata["iTotalDisplayRecords"];
var aaData = Ddata["aaData"];
if (aaData != "") {
$.each(aaData, function() {
$("#show").append("<tr class=\"s_list\">" +
"<td class='num'>" + (i+1) + /*"-" + aaData[i][0] + */"</td>" +
"<td class='pt'> <a target=\"_blank\" href=\"" + aaData[i][4] + "\">" + aaData[i][1] + "</a></td>" +
"<td class='issn'>" + aaData[i][2] + "</td>" +
"<td class='eissn'>" + aaData[i][3] + "</td>" +
"<td class='range'>" + aaData[i][5] + "</td>" +
"</tr>");
i++;
});
}else{
var nodata = "No Articles Found";
$("#show").append("<tr class=\"s_list nodata\" align=\"center\">" +
"<td colspan=\"5\">" + nodata +"</td></tr>");
}
$("#dis_st").val(dis_st);
$("a.total").text(total);
var p = Math.ceil(total / $("#per").val());
var per = parseInt($("#per").val());
var st = parseInt($("#dis_st").val());
var page = Math.ceil(st / per)+1;
$("div.pager").pager({ pagenumber: page, pagecount: p, buttonClickCallback: PageClick });
$("a.total").text(total);
$("a.page").text(page);
$("a.total_page").text(p);
},
Error: function() {
alert("ERROR!!!");
}
});
$("#loading").ajaxStart(function(){
$(this).fadeIn("slow");}
).ajaxStop(function(){
$(this).fadeOut("slow");
});
$("div.status").fadeIn("slow");
}//end function
})
</script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("div.pager").pager({ pagenumber: 1, pagecount: 15, buttonClickCallback: PageClick });
});
PageClick = function(pageclickednumber) {
$("div.pager").pager({ pagenumber: pageclickednumber, pagecount: 15, buttonClickCallback: PageClick
});
}
</script>
<body>
<div id="wrap">
<div id="container">
<div id="header">
<h1></h1>
</div>
<div id="bar">
<div id="search_bar">
<input id="sSearch" name="sSearch" size="30" type="text" value="" />
<input id="sub" type="submit" name="Submit" value="送出" />
</div>
<div class="pager"></div>
<div class="status">
Page <a class="page"></a> of <a class="total_page"></a> | <a class="total"></a> Records.
GO to Page<input class="goto" name="goto" size="4" type="text" value="" /> <input class="2page" type="submit" name="2page" value="GO" />
<input name="post" size="10" type="hidden" value="" /></div>
</div>
<div id="content">
<div id="loading" style="display:none" ><img src="images/ajax-loader.gif" />Loading....</div>
<select name="select" id="per">
<option value="10">顯示10筆</option>
<option value="30">顯示30筆</option>
<option value="50">顯示50筆</option>
<option value="100">顯示100筆</option>
</select>
<br />
<table cellspacing="0" cellpadding="0" id="show">
<tr bgcolor="#FFE9C8" height="24">
<th></th>
<th style="text-align:left;"><input name="sSearch_1" type="text" class="os" id="sSearch_1" size="60"/> </th>
<th><input name="sSearch_2" type="text" class="os" id="sSearch_2" size="10"/> </th>
<th><input name="sSearch_3" type="text" class="os" id="sSearch_3" size="10"/> </th>
<th><input name="sSearch_5" type="text" id="sSearch_5" class="os"/></th></tr>
<tr bgcolor="#FFE9C8" height="24" class="title">
<th width="3%"> </th>
<th width="67%" style="text-align:left;">資料抬頭
<th width="10%">資料抬頭</th>
<th width="10%">資料抬頭</th>
<th width="10%">資料抬頭</th>
</tr>
</table>
<input name="tt_str" size="10" type="hidden" value="" />
<input name="dis_st" id="dis_st" size="10" type="hidden" value="0" />
<input name="key" size="10" type="hidden" value="" />
<div class="pager" ></div>
<div class="status">
Page <a class="page"></a> of <a class="total_page"></a> | <a class="total"></a> Records.
GO to Page<input class="goto" name="goto" size="4" type="text" value="" /> <input class="2page" type="submit" name="2page" value="GO" />
<input name="post" size="10" type="hidden" value="" /></div>
</div>
</div>
<div id="footer">
COPYRIGHT 2011
</div>
</div>
</div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>網頁標題</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript" language="javascript">
google.load("jquery", "1.5");
google.load("jqueryui", "1.5.2");
</script>
<script type="text/javascript" language="javascript" src="js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="js/jquery.pager.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
var pages_click;//用來傳遞
$("#per").change(function(){
ejajax();
})
$("input.os").blur(function(){
$("#dis_st").val(0);
$("#loading").stop();
//加入緩幾秒
ejajax();
})
PageClick = function(pageclickednumber) {
$("div.pager").pager({ pagenumber: pageclickednumber, pagecount: 15,
buttonClickCallback: PageClick});
pages_click = pageclickednumber;
ejajax("pages");
}
$("#sub").click(function(){
$("tr").remove(".db_list");
$("tr").remove(".s_list");
$("#dis_st").val(0);
ejajax();
})
$("input.2page").click(function(){
$("tr").remove(".db_list");
$("tr").remove(".s_list");
ejajax("to");
})
$("tr.s_list").hover(function(){
$("tr").remove(".db_list");
$("tr").remove(".s_list");
ejajax("to");
})
function ejajax(type){
$("tr").remove(".db_list");
$("tr").remove(".s_list");
var sSearch = $("#sSearch").val();
var sSearch_1 = $("#sSearch_1").val();
var sSearch_2 = $("#sSearch_2").val();
var sSearch_3 = $("#sSearch_3").val();
var sSearch_4 = $("#sSearch_4").val();
var sSearch_5 = $("#sSearch_5").val();
switch(type){
default:
var dis_st = (parseInt($("#dis_st").val())<=0)?0:parseInt($("#dis_st").val());
var data = {
"sSearch": sSearch,
"sSearch_1" : sSearch_1,
"sSearch_2" : sSearch_2,
"sSearch_3" : sSearch_3,
"sSearch_4" : sSearch_4,
"sSearch_5" : sSearch_5,
"dis_st" : $("#dis_st").val(),
"dis_len" : $("#per").val()
}
break;
case "to":
var a1 = $("#per").val();
var a2 = ($("input.goto").val()>parseInt($("a.total_page").text()))?parseInt($("a.total_page").text()):$("input.goto").val();
var dis_st = a1*a2-a1;
$("#dis_st").val(dis_st);
var data = {
"sSearch": sSearch,
"sSearch_1" : sSearch_1,
"sSearch_2" : sSearch_2,
"sSearch_3" : sSearch_3,
"sSearch_4" : sSearch_4,
"sSearch_5" : sSearch_5,
"dis_st" : dis_st,
"dis_len" : $("#per").val()
}
break;
case "pages":
$("#dis_st").val(dis_st);
var a1 = $("#per").val();
var a2 = (pages_click>parseInt($("a.total_page").text()))?parseInt($("a.total_page").text()):pages_click;
var dis_st = a1*a2-a1;
var data = {
"sSearch": sSearch,
"sSearch_1" : sSearch_1,
"sSearch_2" : sSearch_2,
"sSearch_3" : sSearch_3,
"sSearch_4" : sSearch_4,
"sSearch_5" : sSearch_5,
"dis_st" : dis_st,
"dis_len" : $("#per").val()
}
break;
};
$("#loading").fadeIn("slow");
$.ajax({
url: "ejquery-.php",
data:data,
type: "POST",
dataType: "json",
success: function(Ddata) {
var i = 0;
var total = Ddata["iTotalRecords"];
var total = Ddata["iTotalDisplayRecords"];
var aaData = Ddata["aaData"];
if (aaData != "") {
$.each(aaData, function() {
$("#show").append("<tr class=\"s_list\">" +
"<td class='num'>" + (i+1) + /*"-" + aaData[i][0] + */"</td>" +
"<td class='pt'> <a target=\"_blank\" href=\"" + aaData[i][4] + "\">" + aaData[i][1] + "</a></td>" +
"<td class='issn'>" + aaData[i][2] + "</td>" +
"<td class='eissn'>" + aaData[i][3] + "</td>" +
"<td class='range'>" + aaData[i][5] + "</td>" +
"</tr>");
i++;
});
}else{
var nodata = "No Articles Found";
$("#show").append("<tr class=\"s_list nodata\" align=\"center\">" +
"<td colspan=\"5\">" + nodata +"</td></tr>");
}
$("#dis_st").val(dis_st);
$("a.total").text(total);
var p = Math.ceil(total / $("#per").val());
var per = parseInt($("#per").val());
var st = parseInt($("#dis_st").val());
var page = Math.ceil(st / per)+1;
$("div.pager").pager({ pagenumber: page, pagecount: p, buttonClickCallback: PageClick });
$("a.total").text(total);
$("a.page").text(page);
$("a.total_page").text(p);
},
Error: function() {
alert("ERROR!!!");
}
});
$("#loading").ajaxStart(function(){
$(this).fadeIn("slow");}
).ajaxStop(function(){
$(this).fadeOut("slow");
});
$("div.status").fadeIn("slow");
}//end function
})
</script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("div.pager").pager({ pagenumber: 1, pagecount: 15, buttonClickCallback: PageClick });
});
PageClick = function(pageclickednumber) {
$("div.pager").pager({ pagenumber: pageclickednumber, pagecount: 15, buttonClickCallback: PageClick
});
}
</script>
<body>
<div id="wrap">
<div id="container">
<div id="header">
<h1></h1>
</div>
<div id="bar">
<div id="search_bar">
<input id="sSearch" name="sSearch" size="30" type="text" value="" />
<input id="sub" type="submit" name="Submit" value="送出" />
</div>
<div class="pager"></div>
<div class="status">
Page <a class="page"></a> of <a class="total_page"></a> | <a class="total"></a> Records.
GO to Page<input class="goto" name="goto" size="4" type="text" value="" /> <input class="2page" type="submit" name="2page" value="GO" />
<input name="post" size="10" type="hidden" value="" /></div>
</div>
<div id="content">
<div id="loading" style="display:none" ><img src="images/ajax-loader.gif" />Loading....</div>
<select name="select" id="per">
<option value="10">顯示10筆</option>
<option value="30">顯示30筆</option>
<option value="50">顯示50筆</option>
<option value="100">顯示100筆</option>
</select>
<br />
<table cellspacing="0" cellpadding="0" id="show">
<tr bgcolor="#FFE9C8" height="24">
<th></th>
<th style="text-align:left;"><input name="sSearch_1" type="text" class="os" id="sSearch_1" size="60"/> </th>
<th><input name="sSearch_2" type="text" class="os" id="sSearch_2" size="10"/> </th>
<th><input name="sSearch_3" type="text" class="os" id="sSearch_3" size="10"/> </th>
<th><input name="sSearch_5" type="text" id="sSearch_5" class="os"/></th></tr>
<tr bgcolor="#FFE9C8" height="24" class="title">
<th width="3%"> </th>
<th width="67%" style="text-align:left;">資料抬頭
<th width="10%">資料抬頭</th>
<th width="10%">資料抬頭</th>
<th width="10%">資料抬頭</th>
</tr>
</table>
<input name="tt_str" size="10" type="hidden" value="" />
<input name="dis_st" id="dis_st" size="10" type="hidden" value="0" />
<input name="key" size="10" type="hidden" value="" />
<div class="pager" ></div>
<div class="status">
Page <a class="page"></a> of <a class="total_page"></a> | <a class="total"></a> Records.
GO to Page<input class="goto" name="goto" size="4" type="text" value="" /> <input class="2page" type="submit" name="2page" value="GO" />
<input name="post" size="10" type="hidden" value="" /></div>
</div>
</div>
<div id="footer">
COPYRIGHT 2011
</div>
</div>
</div>
</body>
</html>
- 12月 26 週一 201111:23
自己弄的jQuery ajax查詢 - PHP檔(回傳)
aColumns 就是資料庫欄位,此欄位順序對應到前台html區丟來的資料順序,所以必須跟sSearch對應。
此篇沒有使用排序功能,所以排序就沒差了。若要排序功能,則是在前台傳遞參數加上iSortCol_N的資料。
可以設定一組驗證值,否則無法直接觀看。放在一開始的if條件即可。
此篇沒有使用排序功能,所以排序就沒差了。若要排序功能,則是在前台傳遞參數加上iSortCol_N的資料。
可以設定一組驗證值,否則無法直接觀看。放在一開始的if條件即可。
- 12月 26 週一 201111:11
自己弄的jQuery ajax查詢 - HTML檔(查詢區)
ejajax就是觸發ajax的函數,所以上面無論是change、click、以及keyup都是用選擇符指定哪個物件透過什麼動作觸發ejajax的函式。
change用在下拉選單,而keyup或keydown就是在搜尋欄位每輸入一個字就觸發。
sSearch則是全欄位搜尋,其餘sSearch_1~ 5則是自訂多少欄位可以單獨搜尋。
而資料倒出則透過 $.each(aaData, function() 這函式進行組合。
最後決定輸出什麼資料就是在該區將json的資料篩出後組合出html。
change用在下拉選單,而keyup或keydown就是在搜尋欄位每輸入一個字就觸發。
sSearch則是全欄位搜尋,其餘sSearch_1~ 5則是自訂多少欄位可以單獨搜尋。
而資料倒出則透過 $.each(aaData, function() 這函式進行組合。
最後決定輸出什麼資料就是在該區將json的資料篩出後組合出html。
- 12月 19 週一 201122:58
codeigniter extend
2.1版在core下建立MY_Controller.php檔案
內容為:
/*-------------------------------------*/
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class FUN_Controller extends CI_Controller{
public $site = array(
"name" => "網站名稱",
"tag" => "標籤"
);
public function __construct()
{
parent::__construct();
}
function FUN_Controller () {
parent::Controller();
}
}
內容為:
/*-------------------------------------*/
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class FUN_Controller extends CI_Controller{
public $site = array(
"name" => "網站名稱",
"tag" => "標籤"
);
public function __construct()
{
parent::__construct();
}
function FUN_Controller () {
parent::Controller();
}
}
- 11月 27 週日 201117:02
Codeiginter Session登入登出 控制器、模組、視圖試作
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Login extends CI_Model {
/*
* 調用方式
*
*
########## Controllers 控制器各頁面 ##########
if (!$this->session->userdata("admin")) redirect("member/login");
########## Controllers 控制器部份 ##########
public function login()
{
//檢查session值
//echo $this->session->userdata("admin");
//echo $this->session->userdata("uid");
$data["path_name"] = "登入頁";
$data['base_url'] = $this->config->item('base_url');
$data['this_url'] = $data['base_url'] . "index.php/member/login";
$check = array(
'bl' => false,
'msg' => ''
);
if(isset($_POST['login']))
{
$logid = $this->input->post('login_id'); //對應view的表單
$logpwd = $this->input->post('login_pwd');
$this->load->model('Login');
$check = $this->Login->check($logid,$logpwd);//回傳參數bl(布林),以及msg 何種錯誤訊息
if ($check['bl']){
$newdata = array( //寫入session的參數
'uid' => $logid,
'admin' => TRUE, //必須對應驗證
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
redirect("member"); //成功後轉向
}
}
$data['login_msg']= $check['msg'] ;
$this->load->view('view_login',$data);
}
//登出
public function logout()
{
$del_session = array('uid', 'admin', 'logged_in');
$this->load->model('Login');
$this->Login->logout($del_session);
redirect('member/login');
}
########## Views 視圖部份 ##########
<?php echo form_open_multipart('member/login');?>
<label>
帳號
<input type="text" name="login_id" id="login_id" />
</label>
<br />
<label>
密碼
<input type="password" name="login_pwd" id="login_pwd" />
</label>
<input type="hidden" name="login" value="1" id="login" />
<br />
<label>
<input type="submit" name="button" id="button" value="登入" />
</label>
</form>
<a href="logout">登出</a>
*
*
*/
function __construct()
{
parent::__construct();
$this->load->database();
}
function check($id,$pwd)
{
//讀取資料庫字串
//$query = $this->db->get('check_db');
$key = "@lib";
$msg[0] = "登入成功";
$msg[1] = "查無此帳號";
$msg[2] = "請重新檢查帳號密碼";
$msg[3] = "無法進行認證";
if (true)//$query->num_rows() > 0)
{
//$check = $query->result_array();
$check[0]['id'] = "abc";
$check[0]['pwd'] = "ecfc8084e7c6c29e3ccf3f202635a197";
$check[1]['id'] = "def";
$check[1]['pwd'] = "d3bb34166864b20243936820ef8c5935";
$check[2]['id'] = "user";
$check[2]['pwd'] = "user001";
$i = 1;
foreach ($check as $row)
{
if($id!=$row['id'])
{
$check['msg'] = $msg[1];
$check['bl'] = false;
continue;// 檢查帳號,不是就跳出此次循環
}else{
$mdpwd = md5($pwd.$key);
if($mdpwd == $row['pwd'])
{
//驗證成功
$check['msg'] = $msg[0];
$check['id'] = $id;
//$check['level'] = "可以添加權限回傳";
$check['bl'] = true;
}else{
echo "出錯訊息:" . $mdpwd ."<br/>";
$check['msg'] = $msg[2];
$check['bl'] = false;
}
break;//檢測密碼,帳號對了就不再跑迴圈
}
}
return $check;
}else{
$check['msg'] = $msg[3];
$check['bl'] = false;
return $check;
}
}
function logout($del_session)
{
foreach ($del_session as $row)
{
$this->session->unset_userdata($row);
}
}
}
/* End of file login.php */
/* Location: ./application/Model/login.php */
class Login extends CI_Model {
/*
* 調用方式
*
*
########## Controllers 控制器各頁面 ##########
if (!$this->session->userdata("admin")) redirect("member/login");
########## Controllers 控制器部份 ##########
public function login()
{
//檢查session值
//echo $this->session->userdata("admin");
//echo $this->session->userdata("uid");
$data["path_name"] = "登入頁";
$data['base_url'] = $this->config->item('base_url');
$data['this_url'] = $data['base_url'] . "index.php/member/login";
$check = array(
'bl' => false,
'msg' => ''
);
if(isset($_POST['login']))
{
$logid = $this->input->post('login_id'); //對應view的表單
$logpwd = $this->input->post('login_pwd');
$this->load->model('Login');
$check = $this->Login->check($logid,$logpwd);//回傳參數bl(布林),以及msg 何種錯誤訊息
if ($check['bl']){
$newdata = array( //寫入session的參數
'uid' => $logid,
'admin' => TRUE, //必須對應驗證
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
redirect("member"); //成功後轉向
}
}
$data['login_msg']= $check['msg'] ;
$this->load->view('view_login',$data);
}
//登出
public function logout()
{
$del_session = array('uid', 'admin', 'logged_in');
$this->load->model('Login');
$this->Login->logout($del_session);
redirect('member/login');
}
########## Views 視圖部份 ##########
<?php echo form_open_multipart('member/login');?>
<label>
帳號
<input type="text" name="login_id" id="login_id" />
</label>
<br />
<label>
密碼
<input type="password" name="login_pwd" id="login_pwd" />
</label>
<input type="hidden" name="login" value="1" id="login" />
<br />
<label>
<input type="submit" name="button" id="button" value="登入" />
</label>
</form>
<a href="logout">登出</a>
*
*
*/
function __construct()
{
parent::__construct();
$this->load->database();
}
function check($id,$pwd)
{
//讀取資料庫字串
//$query = $this->db->get('check_db');
$key = "@lib";
$msg[0] = "登入成功";
$msg[1] = "查無此帳號";
$msg[2] = "請重新檢查帳號密碼";
$msg[3] = "無法進行認證";
if (true)//$query->num_rows() > 0)
{
//$check = $query->result_array();
$check[0]['id'] = "abc";
$check[0]['pwd'] = "ecfc8084e7c6c29e3ccf3f202635a197";
$check[1]['id'] = "def";
$check[1]['pwd'] = "d3bb34166864b20243936820ef8c5935";
$check[2]['id'] = "user";
$check[2]['pwd'] = "user001";
$i = 1;
foreach ($check as $row)
{
if($id!=$row['id'])
{
$check['msg'] = $msg[1];
$check['bl'] = false;
continue;// 檢查帳號,不是就跳出此次循環
}else{
$mdpwd = md5($pwd.$key);
if($mdpwd == $row['pwd'])
{
//驗證成功
$check['msg'] = $msg[0];
$check['id'] = $id;
//$check['level'] = "可以添加權限回傳";
$check['bl'] = true;
}else{
echo "出錯訊息:" . $mdpwd ."<br/>";
$check['msg'] = $msg[2];
$check['bl'] = false;
}
break;//檢測密碼,帳號對了就不再跑迴圈
}
}
return $check;
}else{
$check['msg'] = $msg[3];
$check['bl'] = false;
return $check;
}
}
function logout($del_session)
{
foreach ($del_session as $row)
{
$this->session->unset_userdata($row);
}
}
}
/* End of file login.php */
/* Location: ./application/Model/login.php */