PHP错误-BASE_URL-用户名-CodeIgniter

时间:2018-11-10 14:03:52

标签: php codeigniter

前一段时间,我试图重新打开以前的工作,但无法打开XAMPP控制面板,我想是因为我重新安装了Windows10。然后我决定下载最新版本的XAMPP和CodeIgniter,然后进行传输我以前的文件到新系统。

先前的CI_VERSION ='3.1.1'-最新的CI_VERSION ='3.1.9'-PHP的先前版本:7.0.8-PHP的最新版本7.2.3

当我当前的系统指向创建用户名和密码的“用户名”页面时,出现以下错误。在我以前的系统中,此功能运行正常。这似乎是由于PHP版本之间的差异引起的。

  

遇到PHP错误   严重程度:警告

     

消息:使用未定义的常量BASE_URL-假定为“ BASE_URL”(这将在以后的PHP版本中引发错误)

     

文件名:username.php   行号:47

这是第47行

<form class="form" method="post" action="<?php echo BASE_URL . 'username'; ?>">
  

回溯:

     

文件:C:\ xampp \ htdocs \ application \ views \ username.php   行:47   函数:_error_handler   这是第47行-“>

     

文件:C:\ xampp \ htdocs \ application \ controllers \ Username.php   行:70   功能:查看   这是第70行-$ this-> load-> view('username',$ data);

     

文件:C:\ xampp \ htdocs \ index.php   线:315   函数:require_once   BASE_URLusername“>   这是第315行-require_once BASEPATH.'core / CodeIgniter.php';

有人可以告诉我我需要更改什么吗?

更新1

我唯一可以找到base_url定义的位置是在/config/config.php中;

$config['base_url'] = 'http://localhost/';

在我之前的工作和当前的系统之间并没有改变。

更新2

在Controller Username.php中有一个加载功能

$this->load->helper(array('form', 'url'));

但是除了索引文件之外,我在helper文件夹中找不到任何东西。

同样,在我以前的工作和当前系统之间,这没有改变。

4 个答案:

答案 0 :(得分:0)

常量BASE_URL是在旧代码中的某个地方定义的,而不是在新代码中的某个地方。 CodeIgniter没有定义名为BASE_URL的常量,因此它是在某些自定义代码中完成的。可能看起来像这样

define('BASE_URL', base_url());

还有其他获取值的方法,因此要寻找的主要对象是define('BASE_URL',

看起来很像的地方是/config/config.php/config/constants.php的自定义版本,但是还有很多其他地方,包括基本控制器,自定义库或一些其他用户创建的配置文件。

答案 1 :(得分:0)

在最新的CodeIgniter源代码中找不到任何名为BASE_URL的常量。 他们的文档建议使用base_url()函数返回网站的基本URL。 https://www.codeigniter.com/user_guide/helpers/url_helper.html?highlight=base_url#base_url

但是,在GitHub上有一个较旧的仓库,我可以找到一个CodeIgniter的版本,其中在常量constant.php文件中定义了常量BASE_URLhttps://github.com/assoft/codeigniter/blob/master/application/config/constants.php 可能这是旧版本的常见做法。

因此,在您的示例中,您可以使用base_url()函数。这应该输出http://www.example.com/username

<form class="form" method="post" action="<?php echo base_url('username'); ?>">

您必须在与所使用视图相对应的控制器方法中导入url帮助器。

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

您还应该在application / config / config.php文件中填写基本url的值。

$config['base_url'] = 'http://www.example.com';

答案 2 :(得分:0)

您必须定义base_url。我在头文件中使用它。

 <script>
 var base_url = '<?php echo base_url(); ?>';
 </script>

答案 3 :(得分:0)

我发现了问题。在我的旧系统的constants.php中,有以下内容,

define('BASE_URL', 'http://localhost/');

我将其复制到当前的contants.php文件中,并且可以正常工作,也就是说我没有得到错误。