繁体   English   中英

在codeigniter中注册

[英]Registration in codeigniter

我正在尝试在以下代码中注册。 但是当我注册时,我得到了错误消息未定义的变量基。

视图:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="<?php echo $base?>/<?php echo $css?>/style.css">
<link rel="stylesheet" href="<?php echo $base?>/<?php echo $css?>/bootstrap.min.css">

<script src="<?php echo $base."/".$js?>/jquery.min.js"></script>
<script src="<?php echo $base."/".$js?>/jquery.js"></script>
<script src="<?php echo $base."/".$js?>/bootstrap.min.js"></script>
<title>Registration</title>
</head>

config.php文件

$config['base_url'] = 'http://localhost/ASOFT/Projects/CG_Pack';
$config['site_url'] = 'http://localhost/ASOFT/Projects/CG_Pack/index.php';
$config['css'] = 'assets/css';
$config['js'] = 'assets/js';
$config['image'] = 'assets/image';

控制器:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller {
    var $data;
    function __construct(){
        parent::__construct(); 
        $this->load->library('form_validation');
        $this->load->helper('url');
    $this->load->model('user_model');
        $this->data = array(
        'site' => $this->config->item('site_url'),
             'base' => $this->config->item('base_url'),
             'css' => $this->config->item('css'),
            'js' => $this->config->item('js'),
            'image'=>$this->config->item('image')
        );

    }

public function index()
    {
        $data=$this->data;  
        $this->load->view('header',$data);
        }

public function register()
{
$this->load->view('header');
}
    public function do_register()
    {
    $this->load->library('form_validation');
    $this->form_validation->set_rules('uname', 'Username', 'required|min_length[4]|max_length[15]');

    $this->form_validation->set_rules('pass', 'Password', 'required|min_length[4]');
    $this->form_validation->set_rules('titleimg','Title','required|min_length[4]');
    $this->form_validation->set_rules('descrip', 'Description', 'required|min_length[4]');


    if($this->form_validation->run() == FALSE)
    {


            /*$this->load->view('header');  

    }
    else
    {


 $path = $_FILES['image']['name'];

 $imgext=strtolower(strrchr($path,'.'));

    $imgname= $this->generateRandomString().$imgext;

   if($path!='')
   {

   $im= $this->config->item('base_url').'/uploads'.'/'.$imgname;
   $x=$this->do_upload($imgname);

  $data['img']=$im;


    $this->user_model->register_user($data);
   $this->load->view('header',$data);

}
}
}

 function generateRandomString()
  {
     $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
     $randomString = '';
     for ($i = 0; $i < 8; $i++) {
         $randomString .= $characters[rand(0, strlen($characters) - 1)];
     }
     return $randomString;
  } 

        function do_upload($img)
    {
        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '1024 ';
        $config['file_name'] = $img;    
        $this->load->library('upload',$config);

        if ( ! $this->upload->do_upload('image'))

        {
            $error = array('error' => $this->upload->display_errors());
            /*$data['error']=$error;
            return $data;*/
            return $error;

        }
        else
        {

            $data = array('upload_data' => $this->upload->data());
             return $data;
        }
        return;
    } 
}

当我注册时出现错误

遇到PHP错误

Severity: Notice

Message: Undefined variable: base_url

Filename: views/header.php

Line Number: 6

Backtrace:

File: C:\softwares\xamp\htdocs\ASOFT\Projects\CG_Pack\application\views\header.php
Line: 6
Function: _error_handler

File: C:\softwares\xamp\htdocs\ASOFT\Projects\CG_Pack\application\controllers\home.php
Line: 22
Function: view

File: C:\softwares\xamp\htdocs\ASOFT\Projects\CG_Pack\index.php
Line: 293
Function: include_once

/assets/css/style.css">

当您在register方法中加载header视图时,您没有传递$data

像这样尝试:

public function register()
{
   $this->load->view('header', $this->data);
}

那应该摆脱错误。

您可以调用base_url()方法来代替通过配置变量使用base_url,因此不必在每个控制器中都添加它。

为此,您必须首先加载URL Helper。 这可以在application / config / autoload.php中完成

$autoload['helper'] = array('url');

或者,手动:

$this->load->helper('url');

加载后,请务必记住,base_url()不会隐式打印或回显任何内容,而是返回要打印的值:

echo base_url();

在视图中使用base_url()函数,这是使用它的正确方法,或者确保您将$base变量传递给视图。 我不认为您要传递任何类型的数据来查看控制器的register方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM