文档章节

PHP开发之使用CodeIgniter搭建一个简单的项目

思想永无止境
 思想永无止境
发布于 2016/11/04 11:58
字数 975
阅读 35
收藏 0

搭建PHP开发环境请参考PHP开发环境搭建
下载CodeIgniter
新建一个项目
将CodeIgniter中所有文件copy到项目中。

项目建好了,现在我们要做个简单的注册登录功能。
别急,跟我慢慢来。

1.写sql,创建user表

DROP DATABASE IF EXISTS first_ci;
CREATE DATABASE first_ci;
USE first_ci;
DROP TABLE IF EXISTS _user;
CREATE TABLE _user( _id INT PRIMARY KEY AUTO_INCREMENT NOT NULL COMMENT'主键id', _name VARCHAR(100) NOT NULL COMMENT '用户名', _password VARCHAR(100) NOT NULL COMMENT'密码' ) ;
COMMIT;

2.修改CI配置文件

2.1修改文件application/config/config.php:

$config['base_url'] = 'http://127.0.0.1:80/first_ci/';

2.2.配置CodeIgniter数据库连接,修改文件application/config/database.php

    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',//WAMP中MySQL默认没有密码
    'database' => 'first_ci',
    'dbdriver' => 'mysql',

2.3修改文件application/config/routes.php(此步骤不是必须)

$route['default_controller'] = 'usercontroller';

2.4修改文件application/config/autoload.php

$autoload['packages'] = array();
$autoload['libraries'] = array('database', 'session');
$autoload['drivers'] = array();
$autoload['helper'] = array('url');
$autoload['config'] = array();
$autoload['language'] = array();
$autoload['model'] = array();

3.修改其他配置文件

3.1.修改Apache的httpd.conf文件(此步骤不是必须)。

找到LoadModule rewrite_module modules/mod_rewrite.so,并将这行代码前的“#”注释去掉。
这里写图片描述
这里写图片描述

3.2.添加或修改项目中的.htaccess文件,.htaccess在项目的根目录下(此步骤不是必须)

这里写图片描述
可以参考
中的“删除 index.php 文件”。
以下是我修改后的.htaccess文件全部内容:

<IfModule mod_rewrite.c>
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
Options -Indexes
Options +FollowSymLinks
Options +Includes
ErrorDocument 404 /404.htm
ErrorDocument 500 /404.htm
DirectoryIndex index.php
order deny,allow
RewriteEngine on
RewriteBase /first_ci
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

4.写数据模型UserModel

在application/models目录下新建UserModel.php,
代码如下:

<?php class UserModel extends CI_Model { public $table_name = 'user'; public function __construct() { parent::__construct (); } public function setTableName($table_name){ $this->table_name = $table_name; } public function register($name, $password) { if ($this->db->insert ( $this->table_name, array ( 'name' => $name, 'password' => $password ) )) { return $this->db->insert_id(); } else { log_message ( 'error', 'register error-->' . $this->db->last_query () ); return false; } } public function login($name, $password) { $this->db->where ( array ( 'name' => $name, 'password' => $password ) ); $query = $this->db->get ( $this->table_name ); return $query->row_array (); } } ?>

5.写视图

5.1在application/views的目录中编写register.php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>注册</title>
</head>
<body>
<h1>注册</h1>
    <form action="<?php echo base_url()?>/usercontroller/register" method="post">
        <table>
            <tr>
                <td>用户名</td>
                <td><input name="name"></td>
            </tr>
            <tr>
                <td>密码</td>
                <td><input name="password"></td>
            </tr>
            <tr>
                <td><input type="submit" value="提交"></td>
            </tr>
        </table>
    </form>
</body>
</html>

5.2在application/views的目录中编写login.php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>注册</title>
</head>
<body>
<h1>登录</h1>
    <form action="<?php echo base_url()?>/usercontroller/login" method="post">
        <table>
            <tr>
                <td>用户名</td>
                <td><input name="name" value="<?php if (isset($_REQUEST)&&isset($_REQUEST['name'])) { echo $_REQUEST['name']; }?>"></td>
            </tr>
            <tr>
                <td>密码</td>
                <td><input name="password" value="<?php if (isset($_REQUEST)&&isset($_REQUEST['password'])) { echo $_REQUEST['password']; }?>"></td>
            </tr>
            <tr>
                <td><input type="submit" value="提交"></td>
            </tr>
        </table>
    </form>
</body>
</html>

5.3在application/views的目录中编写welcome.php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Welcome</title>
</head>
<body>
    <h1>
        You login success!Welcome to First CI!
    </h1>
    <h2>You username is <?php echo $_REQUEST["name"]?></h2>
</body>
</html>

5.4在application/views的目录中编写fail.php

<!DOCTYPE html>
<html>
<head>
<title>fail</title>
</head>
<body>
<p>Login fail! please check username and password.</p>
</body>
</html>

6.写控制器

在application/controllers目录下新建UserController.php,
代码如下:

<?php class UserController extends CI_Controller { public function __construct() { parent::__construct (); } public function index() { $this->load->view ( "register" ); } public function register() { $name = $this->input->post ( 'name' ); $password = $this->input->post ( 'password' ); $this->load->model ( 'UserModel' ); $result = $this->UserModel->register ( $name, $password ); if (gettype ( $result ) == "boolean" && ! $result) { $this->load->view ( 'errors/cli/error_404.php' ); } else { $this->load->view ( 'login',$result ); } } public function showLogin() { $this->load->view ( "login.php" ); } public function login() { $name = $this->input->post ( 'name' ); $password = $this->input->post ( 'password' ); $this->load->model ( 'UserModel' ); $result = $this->UserModel->login ( $name, $password ); if (! $result) { $this->load->view ( 'fail' ); } else { $this->load->view ( 'welcome',$result ); } } }

7.以上步骤(包括不是必须的步骤)全部完成后在浏览器访问“http://127.0.0.1/first_ci/”可看到以下界面:

这里写图片描述
输入用用户名密码点击提交:
这里写图片描述
提交之后可以看见以下界面:
这里写图片描述
什么都不管直接点提交后可看到这个界面:
这里写图片描述
在浏览器输入“http://127.0.0.1/first_ci/usercontroller/showlogin”,再次进入登录界面,这回要进行错误的用户名密码测试登录:
这里写图片描述
点击提交进入以下界面:
这里写图片描述

© 著作权归作者所有

思想永无止境
粉丝 4
博文 257
码字总数 292814
作品 0
昌平
程序员
私信 提问
2012年最受欢迎的 PHP 框架

1. yiiframework Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以...

oschina
2012/06/02
8.2K
32
PHP 框架 CodeIgniter 找到新家

当我们宣布要为 CodeIgniter 寻找一个新家的时候,我们从世界各地收到了大量的电子邮件,甚至持续到了今天。但,有一个简单问题:我们应该把框架托付给谁?事实证明,巨大的压力让我们的选择...

CodeIgniter中国
2014/10/09
7.1K
58
CodeIgniter 3.0 将会使用 MIT 许可证发布!

CodeIgniter 3.0 RC3 发布,此版本现已提供下载:https://github.com/bcit-ci/CodeIgniter/archive/3.0rc3.zip。 同时,CodeIgniter 宣布 CodeIgniter 3.0 将会使用 MIT 许可证发布! CodeIg......

oschina
2015/03/11
1K
10
CodeIgniter 3.0.1 RC 发布,PHP 的 MVC 框架

CodeIgniter 3.0.1 RC 发布,现已提供下载:https://github.com/bcit-ci/CodeIgniter/archive/3.0.1rc.zip。 CodeIgniter 是一个简单快速的PHP MVC 框架。EllisLab 的工作人员发布了 CodeIg...

oschina
2015/07/27
1K
13
CodeIgniter + uploadify 在 IE 下会话丢失问题的解决方案

最近需要学习并用CodeIgniter框架对一个项目进行二次开发,由于之前一直都是使用Symfony做项目,所以再换到CodeIgniter项目上还是比较顺畅的。不过相比较之下,感觉CodeIgniter比Symfony要轻...

random123
2014/06/23
192
0

没有更多内容

加载失败,请刷新页面

加载更多

python学习10.04:Python list列表使用技巧及注意事项

前面章节介绍了很多关于 list 列表的操作函数,细心的读者可能会发现,有很多操作函数的功能非常相似。例如,增加元素功能的函数有 append() 和 extend(),删除元素功能的有 clear()、 remo...

太空堡垒185
29分钟前
4
0
新手插画学习的方法?教你如何自学?

插画学习的方法?教你如何自学? 从小喜欢画一些漫画头像随笔画,但是其实没有基础。个人偏好小清新手绘风的插画(如下图),每每看到都希望自己能画出这样的作品。 我其实很想说画这种美术功...

huihuajiaocheng
34分钟前
5
0
面试题

1、实现clone(); 涉及知识点: 1)、typeof 判断类型 2)、精确的判断类型:因为type null是object,type []是object,无法通过typeof来达到精确的判断 obj.toString()的结果和Object.prototyp...

gtandsn
45分钟前
5
0
CentOS 7 部署 tesseract-ocr

官方地址 github yum-config-manager --add-repo https://download.opensuse.org/repositories/home:/Alexander_Pozdnyakov/CentOS_7/ 若提示 yum-config-manager: command not found 执行以......

阿白
46分钟前
3
0
JAVA比较器中comparator的使用

一个专用的比较器Comparator Comparator是一个专用的比较器,当一个不支持自比较或者自比较函数不能满足要求时,可写一个比较器来完成两个对象之间大小的比较。Comparator体现了一种策略模式...

daxiongdi
46分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部