摘要:比如控制器和模型都寫完了,那就可以叫出前臺了等等,這個是什么玩意兒,這個就是提交不符合規則頁面跳轉之后,自動會把之前的值填進來。注冊完成之后,我們就要用登陸了這里要判斷是否已經登錄其實如果這位客官看到這里,應該能拓展著寫完剩下的開發。
話說甲大濕手持一把桃木劍,不慌不忙從袋子里抽出一張符文,只見上面寫著CodeIgniter幾個大字。
眾鄉親不解,甲大濕搖搖頭,拿過旁邊大媽手里的拖把,去旁邊的河岸里沾了點水,在地面上洋洋灑灑地寫上 今天宜寫博客 幾個大字。眾鄉親恍然大悟,紛紛拍掌歡呼。
咳咳咳,進入今天的正題,閑著無聊,看看機油用ci寫的博客,心里癢癢,于是看著ci文檔,小菜鳥按照自己理解,寫了個十分簡單的博客系統,就只有登錄注冊,curd文章的功能。
來次狗!
首先我們要注冊,注冊怎么寫呢,不就是一個表單提交,然后插入數據庫的菊花嘛(咦),等等,注冊?我們是不是需要一個user的model呢?
// modelsuser_model.php load->database(); } // user里我們需要創建用戶,就4行數據 public function create_user() { $data = array( "username" => $this->input->post("username"), "nickname" => $this->input->post("nickname"), "password" => $this->input->post("password"), "email" => $this->input->post("email") ); return $this->db->insert("users",$data); } } // controllersuser.php class User extends CI_Controller { public function __construct() { parent::__construct(); } public function register() { $this->load->helper("form"); $this->load->library("form_validation"); // 這里做表單驗證,就是上面的form_validation提供的一些函數,大家可以通過函數名看出這些函數是做什么的,等等,第一個參數是表單的name,第二個是等下提示錯誤信息用的昵稱,第三個就是處理方式 $this->form_validation->set_rules("username","Username","trim|required|xss_clean|is_unique[users.username]"); $this->form_validation->set_rules("password","Password","trim|required|mathes[passconf]|md5"); $this->form_validation->set_rules("passconf","Password Confirmation","required"); $this->form_validation->set_rules("email","Email","required|is_unique[users.email]"); if($this->form_validation->run() === FALSE) { $data["title"] = "Register"; $this->load->view("templates/header",$data); $this->load->view("user/register"); $this->load->view("templates/footer"); } else { // 如果通過驗證,那么創建用戶 $this->user_model->create_user(); redirect("/login"); } } } ``` 到這里,我們就能實現一個簡單的注冊功能,等等,什么?你說你報錯? 對了,忘記說了,這位客官有沒有發現,config文件夾有一個叫autoload的東西,就是用來自動給我們跑腿的。比如 ```php $autoload["libraries"] = array("database","session"); $autoload["helper"] = array("url"); $autoload["model"] = array("user_model"); ``` 控制器和模型都寫完了,那就可以叫出前臺mm了 ```php
© 2014 By fakefishRegister
">
">
">
">
">
Login
等等,這個set_value()是什么玩意兒,這個就是提交不符合規則頁面跳轉之后,自動會把之前的值填進來。
注冊完成之后,我們就要用登陸了
// controllersuser.php public function login() { $this->load->helper("form"); $this->load->helper("url"); $this->load->library("form_validation"); if($this->session->userdata("logged_in")){ redirect("/"); } // 這里要判斷是否已經登錄 $this->form_validation->set_rules("username","Username","trim|required|xss_clean"); $this->form_validation->set_rules("password","Password","md5"); $data["title"] = "Login"; if($this->form_validation->run() === FALSE) { $this->load->view("templates/header",$data); $this->load->view("user/login"); $this->load->view("templates/footer"); } else { $username = $this->input->post("username"); $password = $this->input->post("password"); $result = $this->user_model->get_user($username); if($result && $password == $result->password) { $this->load->view("user/login-success"); $this->session->set_userdata("uid",$result->id); $this->session->set_userdata("username",$result->username); $this->session->set_userdata("nickname",$result->nickname); $this->session->set_userdata("email",$result->email); $this->session->set_userdata("logged_in",TRUE); redirect("/"); } else { $this->load->view("templates/header",$data); $this->load->view("user/login"); $this->load->view("templates/footer"); } } }
其實如果這位客官看到這里,應該能拓展著寫完剩下的開發。
代碼不就細給了,講一些自己碰到的一些東西。
1.數據庫連接查詢
public function get_list_post($p = FALSE) { $this->db->select("*"); $this->db->from("posts"); $this->db->join("users","users.id = posts.uid"); $this->db->order_by("pid desc"); if($p === FALSE) { $this->db->limit(5); } else { $this->db->limit($p*5+5,$p*5); } $query = $this->db->get(); return $query->result(); }
這里,由于我設計的posts里有一列是uid對應users里的id,每次查文章要把兩個并起來查,然后被這個limit()坑了,上面寫的是對的,但是我一開始寫的是反的,我感覺反著寫才更符合人的想法啊。
整個博客的源碼我放在github上了,在線demo
其實作為一個渣前端,沒怎么學過服務器方面的知識,比如默認的路由是只能是/index.php/write,怎么辦呢,本地是apache,就修改.htaccess文件咯
RewriteEngine on RewriteCond $1 !^(index.php|images|robots.txt) RewriteRule ^(.*)$ /ciblog/index.php/$1 [L]
這樣就能在路徑上自動隱藏index.php啦~
謝謝觀看我這個渣文采。
寫個破文章還沒配圖!
其實寫完發現已經16號了,看了一下程序員黃歷,今天不宜寫博客!!就不想寫了,突然斷尾抱歉各位看客
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/20676.html
摘要:問題產生原因最近在使用的時候經常遇到權限問題。如果權限不夠,就會出現問題。從上圖可以看到,主進程的擁有者是,可以讀寫任何文件,權限肯定沒問題。要解決這個問題,其實就是讓用戶有權讀寫以及其中的文件。 問題產生原因 最近在使用docker的時候經常遇到權限問題。通過這個stackoverflow回答,我明白了問題出現的主要原因:Docker在進行bind mount的時候,或者在進行COP...
摘要:核心變化從第一版發布以來,社區發生了巨大變化。這意味著系統必須全部重寫。暫時不會為一個即將停止支持的版本發布新版本。路由路由功能將被更新。改進的日志系統日志系統將被改進,但具體細節尚未確定。第一階段第一階段將側重于抓住框架最重要的部分。 我們綜合考慮了社區的愿望和意見后,也對什么樣的未來對 CI 是最合適的做了一些思考,然后,CI 理事會對框架的未來做出了一些決策。預告一下,未來將會有...
摘要:前段時間為了抓取網絡文本數據,申請了騰訊云學生機,用的框架弄了一段時間。這個用戶既是不可登錄的操作系統用戶,也是數據庫用戶。設置數據庫用戶密碼為了能夠讓和數據庫相連接,需要設置數據庫用戶密碼。 打讀研之后,更加關注算法的學習,Web開發這一塊便落下了,平時也通過微信公眾號關注了些,常常感慨,技術的更迭真是日新月異。 前段時間為了抓取網絡文本數據,申請了騰訊云學生機,用Python的Sc...
摘要:前段時間為了抓取網絡文本數據,申請了騰訊云學生機,用的框架弄了一段時間。這個用戶既是不可登錄的操作系統用戶,也是數據庫用戶。設置數據庫用戶密碼為了能夠讓和數據庫相連接,需要設置數據庫用戶密碼。 打讀研之后,更加關注算法的學習,Web開發這一塊便落下了,平時也通過微信公眾號關注了些,常常感慨,技術的更迭真是日新月異。 前段時間為了抓取網絡文本數據,申請了騰訊云學生機,用Python的Sc...
摘要:版權聲明可轉載,但不論任何媒體都需要在轉載前與本人溝通,并在轉載時注明出處。的各個核心模塊以模塊名為目錄名分別存儲在這個目錄下。下一篇文章會涉及到和。此文可以轉載,但轉載前需要發郵件到進行溝通,未溝通的均視作侵權。 寫在前面: 為什么選擇開發過程中的 CI 4 作為源碼解讀版本:(1)首先我選 CI 是因為它之前的穩定版都是相對比較輕量小巧的,而且可以認為是簡單的。(2)為什么沒有選...
閱讀 1308·2019-08-30 15:44
閱讀 1979·2019-08-30 13:49
閱讀 1651·2019-08-26 13:54
閱讀 3485·2019-08-26 10:20
閱讀 3241·2019-08-23 17:18
閱讀 3294·2019-08-23 17:05
閱讀 2130·2019-08-23 15:38
閱讀 1012·2019-08-23 14:35