PHP错误-BASE_URL-用户名-CodeIgniter



不久前,我试图重新打开以前的工作,但无法打开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文件中,它很有效,也就是说我没有得到错误。

相关内容

  • 没有找到相关文章

最新更新