不久前,我试图重新打开以前的工作,但无法打开XAMPP控制面板,我想是因为我重新安装了Windows 10。然后我决定下载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:\examplep\htdocs\application\views\username.php线路:47函数:_error_handler这是47号线-">
文件:C:\examplep\htdocs\application\controllers\Username.php线路:70功能:查看这是第70行-$This->load->view('username',$data(;
文件:C:\examplep\htdocs\index.php线路:315函数:require_oneBASE_URLusername">这是第315行-require_one 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文件夹中找不到除索引文件以外的任何内容。
同样,在我以前的工作和现在的系统之间,这一点没有改变。
常量BASE_URL
在旧代码中的某个地方定义,但在新代码中没有。CodeIgniter没有定义一个名为BASE_URL
的常量,所以它是在一些自定义代码中定义的。它可能看起来像这个
define('BASE_URL', base_url());
还有其他方法可以获得该值,因此要查找的主要内容是define('BASE_URL',
。
可能需要查找的地方是/config/config.php
或/config/constants.php
的自定义版本,但还有很多其他地方,包括基本控制器、自定义库或其他用户创建的配置文件。
在最新的CodeIgniter源代码中找不到任何名为BASE_URL
的常量。他们的文档建议使用base_url()
函数来返回网站的基本URL。https://www.codeigniter.com/user_guide/helpers/url_helper.html?highlight=base_url#base_url
然而,在GitHub上有一个更旧的repo,我可以在那里找到CodeIgniter的一个版本,其中常量BASE_URL
是在constants.php文件中定义的。https://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';
您必须定义base_url。我在头文件中使用这个。
<script>
var base_url = '<?php echo base_url(); ?>';
</script>
我发现了我的问题。在我的旧系统的constants.php中有以下内容,
define('BASE_URL', 'http://localhost/');
我把它复制到我当前的contants.php文件中,它很有效,也就是说我没有得到错误。