我使用Codeigniter 3构建了一个系统,出于某种原因,只有一些用户正在使用白屏。我正在尝试调试它并开启日志记录。
我的日志中出现以下错误:
Severity: Notice --> Use of undefined constant VIEWPATH - assumed 'VIEWPATH' /my/server/path/to/system/core/Common.php 196
Severity: Notice --> Use of undefined constant VIEWPATH - assumed 'VIEWPATH' /my/server/path/to/system/core/Exceptions.php 162
Severity: Warning --> include(): Failed opening 'VIEWPATHerrors/html/error_general.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') /my/server/path/to/system/core/Exceptions.php 182
因此,似乎核心php文件无法从索引文件中看到已定义的变量。但奇怪的是,如果我在Common.php的顶部定义VIEWPATH,则表示已经设置了VIEWPATH。我在控制器中添加了一个log_message来输出我的VIEWPATH设置,它似乎工作正常。
我无法弄清楚如何克服这个问题。有什么想法吗?
答案 0 :(得分:10)
谢谢@abdulla,然而,我发现了这个问题。 index.php文件仅被一些用户绕过,这些用户以某种方式转到一个基于我们之前做过的CI2构建的旧的不同命名文件。
如果有其他人遇到此问题,请检查以确保您没有任何其他"索引"您的root用户可能访问的文件。
答案 1 :(得分:6)
这通常是由于在升级CodeIgniter时未从旧版本更新index.php。简单的解决方法是从您要升级的版本下载index.php文件,并用它替换旧的index.php。
答案 2 :(得分:0)
VIEWPATH
应更改为APPPATH
。因此它将加载您的根文档文件夹
主要用于访问view
文件夹
APPPATH
用法
1. controller
2. view
- myfile.php
- sub_folder
1. main.php
如果我们想要访问myfile.php
内的main.php
,我们会使用
include(APPPATH.'views/myfile.php');
答案 3 :(得分:0)
我也遇到了这个问题。当更改codeigniter旧版本时,不要忘记使用新版本的index.php文件。而已。它无法找到PATH目录。因为在新版本中,路径在codeigniter处发生了变化。
答案 4 :(得分:0)
对我来说,类似的解决方案是,我没有对index.php进行所有必需的更改。从CI 3的示例中使用index.php更新(然后重新添加到我的自定义元素中)之后,嘿,它可以正常工作了。