• 专注于网站建设,网络推广,关键词优化,SEO优化,专业的网站建设开发团队!

叶景网络之CodeIgniter框架的学习

2015-06-13 17:31:33   来源:叶景网络

CodeIgniter是真正的轻量级的框架,是基于MVC模式的框架
ci官网:http://codeigniter.org.cn/下载
显示视图:
访问方式:http://localhost/ci/index.php/控制器名/方法名
$this->load->view('视图名',数组/对象);如:
$data=array('name'=>$name,'count'=>$count);
$this->load->view('header',$data);
//-----------------------------------------------------------
创建一个访问量统计控制器(index.php):
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Index extends CI_Controller {
public function show()
{
$name="碧波君子Blog";
@$count=file_get_contents('./num.txt');
$count=$count?$count:0;
$count++;
$data=array('name'=>$name,'count'=>$count);
$re=fopen('./num.txt','w');
fwrite($re,$count);
fclose($re);
$this->load->view('header',$data);
}
}
//-----------------------------------------------------------
创建一个访问量统计视图(header.php):
<html>
<head>
<title>这是网页头部</title>
<style type=text/css>
span{font-weight:800;}
</style>
</head>
<body>
<?php echo "欢迎光临!<span>{$name}</span>您是第<span>{$count}</span>位访问者!";?>
</body>
</html>
//------------------------------以下通过ci模型实现增删改查-----------------
创建一张用户表(id username password realname age sex):
 create table user(id int not null primary key auto_increment,
 username varchar(10) ,
 password char(32),
 realname char(10),
 age tinyint,
 sex tinyint)engine MYISAM charset utf8;
创建模型就是创建一个类文件Test_Model.php,如:
<?php
class Test_Model extends CI_Model{
function __construct(){//重载父类中的__construct方法
parent::__construct();
$this->load->database();//连接数据库
}
function user_insert($arr){//插入方法
$this->db->insert('user',$arr);
}
function user_update($id,$arr){//修改方法
$this->db->where('id',$id);
$this->db->update('user',$arr);
}
function user_delete($id){//删除方法
$this->db->where('id',$id);
$this->db->delete('user');
}
function user_select($id){//查询方法
$this->db->where('id',$id);
$this->db->select('*');
$query=$this->db->get('user');
return $query->result();
}
}
?>


创建控制器user.php,如:


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class User extends CI_Controller {
function insert()
{
$this->load->model('Test_Model');//载入模型
$arr=array('username'=>'zhoushiyong','password'=>'123456');
$this->Test_Model->user_insert($arr);
}
function update(){
$this->load->model('Test_Model');//载入模型
$arr=array('username'=>'22222222222','password'=>'123456');
$this->Test_Model->user_update(3,$arr);
}
function delete(){
$this->load->model('Test_Model');//载入模型
$this->Test_Model->user_delete(5);
}
function select(){
$this->load->model('Test_Model');//载入模型
$user=$this->Test_Model->user_select(4);
//var_dump($user);
echo '用户名id:'.$user[0]->id.'用户名:'.$user[0]->username;
}
}
?>

//-------------------------利用CI的上传类实现文件上传------------------------------
方法一(传统方法):创建一个文件上传控制器:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Upload extends CI_Controller {
function index(){
$this->load->view('upfile');
}
function up(){
if(!empty($_POST['sub'])){
var_dump($file=($_FILES['upfile']));
$file=($_FILES['upfile']);
if($file['size']>=2000000){
echo "对不起,你的上传的文件过大!";
}else{
switch($file['type']){
case 'image/jpeg':$hz='.jpg';break;
default:$hz=false;break;
}
if($hz){
$time=time();
move_uploaded_file($file['tmp_name'],"./upload/{$time}{$hz}");
}else{
echo "您上传的文件类型不允许!";
}
}
}
}
}
?>
方法二:利用CI的上传类创建一个文件上传控制器:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Upload extends CI_Controller {
function index(){
$this->load->view('upfile');
}
function up(){
$config['upload_path']='./upload/';
$config['allowed_types']='gif|jpg|png';
$config['max_size']='2000';
$this->load->library('upload',$config);
if($this->upload->do_upload('upfile')){
$data=array('upload_data'=>$this->upload->data());
var_dump($data);
}else{
$error=array('error'=>$this->upload->display_errors());
var_dump($error);
}
}
}
?>
创建一个文件上传视图:
<!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=gb2312" />
<title>文件上传</title>
</head>
<body>
<form action="/ci/index.php/upload/up" method="post" enctype="multipart/form-data">
<input type="file" name="upfile" />
<input type="submit" name="sub" value="上传" />
</form>
</body>
</html>
//--------------------------------------CI和类库进行session登录验证----------------------------


1.修改配置文件:
config.php
$config['encryption_key']如:$config['encryption_key'] = '123456';
2.加载SESSION类
$this->load->library('session');
3.创建SESSION
$this->session->set_userdata($array);
4.查看SESSION
$this->session->userdata(session名);
5.删除SESSION
$this->session->unset_userdata('session名');
//---------------------------------------------------
实例:
创建一个登录的的控制器(login.php):
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Login extends CI_Controller {
function index(){
$this->load->view('login');
}
function checklogin(){
$this->load->model('Test_Model');
$username=$this->Test_Model->user_select($_POST['username']);
if($username){
if($username[0]->password==$_POST['password']){
$this->load->library('session');//加载session类
$arr=array('uid'=>$username[0]->id);
$this->session->set_userdata($arr);//创建SESSION
echo $this->session->userdata('uid');//查看SESSION
}else{
echo "对不起,您输入的密码不正确";
}
}else{
echo '"对不起,您输入的用户不存在';
}
}
function checksession(){
$this->load->library('session');//加载session类
if($this->session->userdata('uid')){
echo "您已经登录!";
}else{
echo "对不起,您还没有登录!";
}
}
function loginout(){
$this->load->library('session');//加载session类
$this->session->unset_userdata('uid');
}
}
?>
//-----------------------------------------------
创建一个模型(Test_Model.php):
<?php
class Test_Model extends CI_Model{
function __construct(){//重载父类中的__construct方法
parent::__construct();
$this->load->database();//连接数据库
}
function user_select($username){//查询方法
$this->db->where('username',$username);
$this->db->select('*');
$query=$this->db->get('user');
return $query->result();
}
}
?>


//-----------------------------------------------
创建一个视图页面(login.php):
<!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=gb2312" />
<title>登录验证</title>
</head>
<body>
<h3>后台管理登录</h3>
<form action="/ci/index.php/login/checklogin/" enctype="application/x-www-form-urlencoded" method="post">
<input type="text" name="username" /><br />
    <input type="password" name="password" /><br />
    <input type="submit" name="submit" value="登录" />
</form>
</body>
</html>
//-----------------------------利用CI的分页类来实现分页----------------------------------------
首先必须知道的一些参数:
1.总共有多少条记录:$config['total_rows']=count(数据库对象);
2.一页要有多少条记录:$config['per_page']=15;
3.总共显示多少页:$config['num_links']=5;
4.当前面前后要显示几个分页链接:$config['base_url']='/ci/index.php/page/pagelist/';
$this->load->library('Pagination');//引入分布类
//-------------------------------


创建分页控制器(page.php):


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Page extends CI_Controller {
function useradd(){
$this->load->model('Test_Model');
for($i=0;$i<=100;$i++){
$name='zhoushiyong'.$i;
$arr=array('username'=>$name,'password'=>'123456');
$this->Test_Model->user_insert($arr);
}
}
function pagelist($pid){
$this->load->model('Test_Model');
$user=$this->Test_Model->user_select_all();
$pagenum=20;
$config['total_rows']=count($user);//总共有多少条记录
$config['per_page']=$pagenum;//一页要有多少条记录
$config['num_links']=5;//总共显示多少页
$config['base_url']='/ci/index.php/page/pagelist/';//当前面前后要显示几个分页链接
$config['use_page_numbers']=true;//设置参数
$this->load->library('pagination');//引入分布类
$this->pagination->initialize($config);//执行分页方法
echo $this->pagination->create_links().'<br />';//输出分页链接
$pid=$pid?$pid:1;//接收传入的参数值
$start=($pid-1)*$pagenum;//分页计数
$list=$this->Test_Model->user_select_limit($pagenum,$start);//输入条数
}
}
?>
//------------------------------------------------------


创建分页模型(Test_Model.php):


<?php
class Test_Model extends CI_Model{
function __construct(){//重载父类中的__construct方法
parent::__construct();
$this->load->database();//连接数据库
}
function user_insert($arr){//插入方法
$this->db->insert('user',$arr);
}
function user_select_limit($end,$start){
$this->db->select('*');
$this->db->limit($end,$start);
$query=$this->db->get('user');
return $query->result();
}
}
?>

叶景网络,网络推广,网站建设
特别推荐RECOMMEND
搜索引擎网站关键词seo优化的意义
视频推广怎么做
网站seo优化怎么做关键词排上首页?
SEO介绍什么叫搜索引擎网站关键词优化
seo优化怎样做提升关键词排名
热点图文Hot
没有加www域名打不开的解决方案 没有加www域名打不
叶景网络之CodeIgniter框架的学习 叶景网络之CodeIgni
叶景网络之Ajax学习笔记 叶景网络之Ajax学习
叶景网络之DIV+CSS学习笔记 叶景网络之DIV+CSS
关注排行RANKING
1

没有加www域名打不开的解决方案

没有加www域名打不开的解决方案 网站上线了,在做SEO时发现没带www的时候访问不了,是以前的域名绑定时没做好,这对se...

2

叶景网络之CodeIgniter框架的学习

叶景网络之CodeIgniter框架的学习 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站建...

3

叶景网络之Ajax学习笔记

叶景网络之Ajax学习笔记 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站建...

4

叶景网络之DIV+CSS学习笔记

叶景网络之DIV+CSS学习笔记 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站建设...

5

叶景网络之SQL注入与安全学习笔记

叶景网络之SQL注入与安全学习笔记 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站建...

6

叶景网络之Mysql常用命令学习笔记

叶景网络之Mysql常用命令学习笔记 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站建...

7

叶景网络之Mysql优化的学习笔记

叶景网络之Mysql优化的学习笔记 通俗地理解三个范式,对于数据库设计大有好处。 第一范式:1NF是对属性的原子性...

8

叶景网络之Gvim编辑器的学习笔记

叶景网络之Gvim编辑器的学习笔记 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

9

叶景网络之memcached 学习笔记

叶景网络之memcached 学习笔记 memcached 是一个高效的分布式的内存对象系统,他可以支持把各种php的数据放入...