摘要:比如控制器和模型都寫完了,那就可以叫出前臺(tái)了等等,這個(gè)是什么玩意兒,這個(gè)就是提交不符合規(guī)則頁(yè)面跳轉(zhuǎn)之后,自動(dòng)會(huì)把之前的值填進(jìn)來(lái)。注冊(cè)完成之后,我們就要用登陸了這里要判斷是否已經(jīng)登錄其實(shí)如果這位客官看到這里,應(yīng)該能拓展著寫完剩下的開發(fā)。
話說(shuō)甲大濕手持一把桃木劍,不慌不忙從袋子里抽出一張符文,只見上面寫著CodeIgniter幾個(gè)大字。
眾鄉(xiāng)親不解,甲大濕搖搖頭,拿過(guò)旁邊大媽手里的拖把,去旁邊的河岸里沾了點(diǎn)水,在地面上洋洋灑灑地寫上 今天宜寫博客 幾個(gè)大字。眾鄉(xiāng)親恍然大悟,紛紛拍掌歡呼。
咳咳咳,進(jìn)入今天的正題,閑著無(wú)聊,看看機(jī)油用ci寫的博客,心里癢癢,于是看著ci文檔,小菜鳥按照自己理解,寫了個(gè)十分簡(jiǎn)單的博客系統(tǒng),就只有登錄注冊(cè),curd文章的功能。
來(lái)次狗!
首先我們要注冊(cè),注冊(cè)怎么寫呢,不就是一個(gè)表單提交,然后插入數(shù)據(jù)庫(kù)的菊花嘛(咦),等等,注冊(cè)?我們是不是需要一個(gè)user的model呢?
// modelsuser_model.php load->database(); } // user里我們需要?jiǎng)?chuàng)建用戶,就4行數(shù)據(jù) 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"); // 這里做表單驗(yàn)證,就是上面的form_validation提供的一些函數(shù),大家可以通過(guò)函數(shù)名看出這些函數(shù)是做什么的,等等,第一個(gè)參數(shù)是表單的name,第二個(gè)是等下提示錯(cuò)誤信息用的昵稱,第三個(gè)就是處理方式 $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 { // 如果通過(guò)驗(yàn)證,那么創(chuàng)建用戶 $this->user_model->create_user(); redirect("/login"); } } } ``` 到這里,我們就能實(shí)現(xiàn)一個(gè)簡(jiǎn)單的注冊(cè)功能,等等,什么?你說(shuō)你報(bào)錯(cuò)? 對(duì)了,忘記說(shuō)了,這位客官有沒有發(fā)現(xiàn),config文件夾有一個(gè)叫autoload的東西,就是用來(lái)自動(dòng)給我們跑腿的。比如 ```php $autoload["libraries"] = array("database","session"); $autoload["helper"] = array("url"); $autoload["model"] = array("user_model"); ``` 控制器和模型都寫完了,那就可以叫出前臺(tái)mm了 ```php
© 2014 By fakefishRegister
">
">
">
">
">
Login
等等,這個(gè)set_value()是什么玩意兒,這個(gè)就是提交不符合規(guī)則頁(yè)面跳轉(zhuǎn)之后,自動(dòng)會(huì)把之前的值填進(jìn)來(lái)。
注冊(cè)完成之后,我們就要用登陸了
// 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("/"); } // 這里要判斷是否已經(jīng)登錄 $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"); } } }
其實(shí)如果這位客官看到這里,應(yīng)該能拓展著寫完剩下的開發(fā)。
代碼不就細(xì)給了,講一些自己碰到的一些東西。
1.數(shù)據(jù)庫(kù)連接查詢
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(); }
這里,由于我設(shè)計(jì)的posts里有一列是uid對(duì)應(yīng)users里的id,每次查文章要把兩個(gè)并起來(lái)查,然后被這個(gè)limit()坑了,上面寫的是對(duì)的,但是我一開始寫的是反的,我感覺反著寫才更符合人的想法啊。
整個(gè)博客的源碼我放在github上了,在線demo
其實(shí)作為一個(gè)渣前端,沒怎么學(xué)過(guò)服務(wù)器方面的知識(shí),比如默認(rèn)的路由是只能是/index.php/write,怎么辦呢,本地是apache,就修改.htaccess文件咯
RewriteEngine on RewriteCond $1 !^(index.php|images|robots.txt) RewriteRule ^(.*)$ /ciblog/index.php/$1 [L]
這樣就能在路徑上自動(dòng)隱藏index.php啦~
謝謝觀看我這個(gè)渣文采。
寫個(gè)破文章還沒配圖!
其實(shí)寫完發(fā)現(xiàn)已經(jīng)16號(hào)了,看了一下程序員黃歷,今天不宜寫博客??!就不想寫了,突然斷尾抱歉各位看客
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/20676.html
摘要:?jiǎn)栴}產(chǎn)生原因最近在使用的時(shí)候經(jīng)常遇到權(quán)限問(wèn)題。如果權(quán)限不夠,就會(huì)出現(xiàn)問(wèn)題。從上圖可以看到,主進(jìn)程的擁有者是,可以讀寫任何文件,權(quán)限肯定沒問(wèn)題。要解決這個(gè)問(wèn)題,其實(shí)就是讓用戶有權(quán)讀寫以及其中的文件。 問(wèn)題產(chǎn)生原因 最近在使用docker的時(shí)候經(jīng)常遇到權(quán)限問(wèn)題。通過(guò)這個(gè)stackoverflow回答,我明白了問(wèn)題出現(xiàn)的主要原因:Docker在進(jìn)行bind mount的時(shí)候,或者在進(jìn)行COP...
摘要:核心變化從第一版發(fā)布以來(lái),社區(qū)發(fā)生了巨大變化。這意味著系統(tǒng)必須全部重寫。暫時(shí)不會(huì)為一個(gè)即將停止支持的版本發(fā)布新版本。路由路由功能將被更新。改進(jìn)的日志系統(tǒng)日志系統(tǒng)將被改進(jìn),但具體細(xì)節(jié)尚未確定。第一階段第一階段將側(cè)重于抓住框架最重要的部分。 我們綜合考慮了社區(qū)的愿望和意見后,也對(duì)什么樣的未來(lái)對(duì) CI 是最合適的做了一些思考,然后,CI 理事會(huì)對(duì)框架的未來(lái)做出了一些決策。預(yù)告一下,未來(lái)將會(huì)有...
摘要:前段時(shí)間為了抓取網(wǎng)絡(luò)文本數(shù)據(jù),申請(qǐng)了騰訊云學(xué)生機(jī),用的框架弄了一段時(shí)間。這個(gè)用戶既是不可登錄的操作系統(tǒng)用戶,也是數(shù)據(jù)庫(kù)用戶。設(shè)置數(shù)據(jù)庫(kù)用戶密碼為了能夠讓和數(shù)據(jù)庫(kù)相連接,需要設(shè)置數(shù)據(jù)庫(kù)用戶密碼。 打讀研之后,更加關(guān)注算法的學(xué)習(xí),Web開發(fā)這一塊便落下了,平時(shí)也通過(guò)微信公眾號(hào)關(guān)注了些,常常感慨,技術(shù)的更迭真是日新月異。 前段時(shí)間為了抓取網(wǎng)絡(luò)文本數(shù)據(jù),申請(qǐng)了騰訊云學(xué)生機(jī),用Python的Sc...
摘要:前段時(shí)間為了抓取網(wǎng)絡(luò)文本數(shù)據(jù),申請(qǐng)了騰訊云學(xué)生機(jī),用的框架弄了一段時(shí)間。這個(gè)用戶既是不可登錄的操作系統(tǒng)用戶,也是數(shù)據(jù)庫(kù)用戶。設(shè)置數(shù)據(jù)庫(kù)用戶密碼為了能夠讓和數(shù)據(jù)庫(kù)相連接,需要設(shè)置數(shù)據(jù)庫(kù)用戶密碼。 打讀研之后,更加關(guān)注算法的學(xué)習(xí),Web開發(fā)這一塊便落下了,平時(shí)也通過(guò)微信公眾號(hào)關(guān)注了些,常常感慨,技術(shù)的更迭真是日新月異。 前段時(shí)間為了抓取網(wǎng)絡(luò)文本數(shù)據(jù),申請(qǐng)了騰訊云學(xué)生機(jī),用Python的Sc...
摘要:版權(quán)聲明可轉(zhuǎn)載,但不論任何媒體都需要在轉(zhuǎn)載前與本人溝通,并在轉(zhuǎn)載時(shí)注明出處。的各個(gè)核心模塊以模塊名為目錄名分別存儲(chǔ)在這個(gè)目錄下。下一篇文章會(huì)涉及到和。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 寫在前面: 為什么選擇開發(fā)過(guò)程中的 CI 4 作為源碼解讀版本:(1)首先我選 CI 是因?yàn)樗暗姆€(wěn)定版都是相對(duì)比較輕量小巧的,而且可以認(rèn)為是簡(jiǎn)單的。(2)為什么沒有選...
閱讀 1321·2019-08-30 15:44
閱讀 2033·2019-08-30 13:49
閱讀 1664·2019-08-26 13:54
閱讀 3498·2019-08-26 10:20
閱讀 3282·2019-08-23 17:18
閱讀 3306·2019-08-23 17:05
閱讀 2139·2019-08-23 15:38
閱讀 1022·2019-08-23 14:35