CodeIgniter
Allen 2021-08-09 19:49:55 3717 2 0 0 0

CodeIgniter框架开发一个网站的后台1-27

https://v.youku.com/v_show/id_XMTM2MzU3MjcyMA==.html


02-将模板加入网站,设计login.php

以下中用到函数:base_url()
<link rel="stylesheet" href="<? echo base_url('public/admin/css/login.css'); ?>">
打开此函数方法:
打开文件:/application/config/autoload.php 
找到设置:$autoload['helper'] = array('');  
在值上加上url

03-后台use表创建

04-拓展控制器(扩展CI_Controller)

在/application/core/创建文件:My_Controllers.php
创建扩展类MY_Controller:
class MY_Controller extends CI_Controller {
    public function __construct(){
        parent :: __construct();
        // 定义常量
        define('PUB','public');
        define('MODULE','admin');
        define('C',$this->uri->segment(2,'main'));    // class
        define('M',$this->uri->segment(3,'index'));   // mothed
    }   
}

然后可以在控制器和视图中使用扩展类中定义的常量:
$this->load->view(MODULE .'/user/login');  ////$this->load->view('admin/user/login');

<link rel="stylesheet" href="<? echo base_url(PUB.'/'.MODULE.'/css/login.css'); ?>">
<form action="<? echo site_url(MODULE.'/'.C.'/'.M); ?>" method="post">

实际代码-->
<link rel="stylesheet" href="http://xxx/ci-admin/public/admin/css/login.css">
<form action="http://xxx/ci-admin/index.php/admin/login/index" method="post">

Tag: CI笔记 教程
评论
Allen#1Allen 2021-08-10 23:42:07(N) 链接地址

CodeIgniter框架开发一个网站的后台5

地址:https://v.youku.com/v_show/id_XMTM2NDUwNzQ5Ng==.html

...

主要内容:

--调试验证码

--编写格式化p函数:/helpers/function_helper.php,

function p($data=null) {
    if (empty($data)) {
        return false;
    }    
    echo '<pre>';
    print_r($data);
    echo '</pre>';
}

【要开启帮助函数:/config/autoload.php 中设置:$autoload['helper'] = array('url','function');

--验证提交数据,包括验证码 

【开启Session: session_start();

--刷新验证码(JS+aJax)

/views/admin/user/login.php

<script type="text/javascript">
$(function() {
    $('img#verify').click(function(){   /* img#verify 是下面图片的标签名和ID*/
        $.ajax({
		    url: '<?php echo site_url(MODULE .'/'. C .'/captcha') ?>?i='+Math.random(),
			success: function(data){
			    /*alert(data);   调试,查看图片地址*/
				$('img#verify').attr('src',data);
				return;
			}
        });
    })
})
</script>

/controllers/admin/login.php 中增加公共方法
    public function captcha() {  // /view/admin/user/login.php中ajax中用到的方法 
		if (empty($this->input->get('i',NUlL))) {  //判断是否有提交过来
			exit();  //如果是假,不允许输出字符,直接退出
		}
		echo $this->_captcha();
	}

实现成功!

Allen#2Allen 2021-08-12 23:39:49(N) 链接地址

06-后台登录,验证用户名和密码

https://v.youku.com/v_show/id_XMTM2NDYzMzAyMA==.html

...

前台js验证

<script type="text/javascript">
$(function() {
    /* 验证输入不能为空*/
    $('#login_form form').submit(function(){
		if ($('input[name="username"]').val() == '') {
			$('input[name="username"]').focus();
			return false;
		}
		if ($('input[name="password"]').val() == '') {
			$('input[name="password"]').focus();
			return false;
		}
		if ($('input[name="verify"]').val() == '') {
			$('input[name="verify"]').focus();
			return false;
		}
	});
	
    $('img#verify').click(function(){   /* img#verify 是下面图片的标签名和ID*/
        $.ajax({
		    url: '<?php echo site_url(MODULE .'/'. C .'/captcha') ?>?i='+Math.random(),
			success: function(data){
			    /*alert(data);   调试,查看图片地址*/
				$('img#verify').attr('src',data);
				return;
			}
        });
    })
})
</script>

...

数据库建表和数据

create table user (id tinyint(1),username varchar(20),password char(32),status tinyint(1));
insert into user (id,username,password,status) values (1,'admin','123','1');

...

新建user_model模型

1,模型类在models目录下创建。

2,模型类必须继承CI_Model。

新建User_model.php

<?
defined('BASEPATH') || exit('No direct script access allowed');

class User_model extends CI_Model {
    // 把用户名密码传递到这里
    private $t ='user'; //声明一个私有变量,表名
    public function login($where = array()){
        if (empty($where)) {
            return array();
        }
        //return $this->db->get_where('ci_user'),$where)->row_array();
        return $this->db->get_where($this-t,$where)->row_array();
    }
}

控制器login.php方法

    public function index() {
        $data = array();
        
        if (! empty($_POST)) {
            $username = $this->input->post('username',NULL);
            $password = $this->input->post('password',NULL);
            $verify = $this->input->post('verify',NULL);
            if (empty($username)||empty($password)||empty($password)) {
                echo "<script>alert('用户名,密码,验证码都不能为空');history.back();</script>";
                exit();
            }
            if ($verify != $_SESSION['verify_code']) {
                echo "<script>alert('验证码不正确!');history.back();</script>";
                exit();
            }
            //验证码正确后,就要释放Session中的验证码,清空sessiion中的验证码。
            unset($_SESSION['verify_code']);
            $_SESSION['verify_code'] = NULL;

            //p($_POST);
            //加载模块
            $this->load->model(MODULE.'/User_model');
            $where = array(
                'username' => $username,
                'password' => $this->_password($password)
            );
            // 用变量接收返回值
            $user = $this->User_model->login($where);
            if (empty($user)) {  // 如果返回空记录
                echo "<script>alert('用户名或密码错误!');history.back();</script>";
                exit();
            }
            if (empty($user['status'])){
                echo "<script>alert('你已经被禁用,请联系管理员!');history.back();</script>";
                exit();
            }
            redirect(MODULE .'/main/index');
            exit();
        }
        
        $data['captcha'] = $this->_captcha();
        
        //exit($captcha);
        
        $this->load->view(MODULE .'/user/login',$data);  // $this->load->view('admin/user/login');
        //var_dump($data);
    }  

My_Controller.php

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

class MY_Controller extends CI_Controller {
    public function __construct(){
        parent :: __construct();
        
        session_start();
        // 定义常量
        define('PUB','public');
        define('MODULE','admin');
        define('C',$this->uri->segment(2,'main'));    // class
        define('M',$this->uri->segment(3,'index'));   // mothed
    }   
    
    // 密码加密
    protected function _password($pass) {
        return md5(md5($pass) . 'ci');  // 两次加密并加随意字符串
    }
    
    protected function _captcha() {
        $this->load->helper('captcha');    
        
        $_SESSION['verify_code'] = rand(10000,99999);
        
        $config = array(
            'word' => $_SESSION['verify_code'], //'Random word',
            'img_path' => './'.PUB . '/captcha/',  //图片保存的路径
            'img_url' => base_url('public/captcha'),   // 图片地址
            'font_path' => './system/fonts/texb.ttf',    // 字体路径
            'img_width' => 150,
            'img_height' => 30,
            'expiration' => 7200   //过期时间7200秒
        );
        
        $captcha = create_captcha($config);
        //print_r($captcha);
        return $config['img_url'].'/'.$captcha['filename'];

    }
}
顶部     1/1 
欢迎评论
未登录,
请先 [ 注册 ] or [ 登录 ]
(一分钟即可完成注册!)
返回首页     ·   返回[CodeIgniter]   ·   返回顶部