[英]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.