使用CodeIgniter 2.xx运行命令行时遇到PHP错误

Zab*_*abs 16 php command-line codeigniter command-line-interface codeigniter-2

我已按照官方codeigniter网站上提供的确切指南来运行CLI(命令行界面)工具.https://www.codeigniter.com/userguide2/general/cli.html

我的控制器是......

<?php
class Tools extends CI_Controller {

    public function message($to = 'World')
    {
    echo "Hello {$to}!".PHP_EOL;
    }

} ?>
Run Code Online (Sandbox Code Playgroud)

当我从我的CMD运行以下命令时,我在命令行窗口中得到以下输出(和错误):

php index.php tools message

<h4>A PHP Error was encountered.</h4>
<p>Severity: Notice</p>
<p>Message: Undefined index: REMOTE_ADDR</p>
<p>Filename: core/Input.php</p>
<p>Line Number: 351</p>
.....
<h4>A PHP Error was encountered</h4>
<p>Message: Cannot modify header information - headers already sent by (output at C:{systempath}\system\2.1.4\core\Exceptions.php:185)</p>
<p>Filename: libraries/Session.php</p>
<p>Line Number: 675</p>

</div>Hello World!
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么我会遇到这个问题?我也按照官方的Codeigniter CLI教程来学习本教程 - 任何想法?我正在使用CodeIgniter 2.1.4和XAMPP(Windows).

Zab*_*abs 31

https://github.com/EllisLab/CodeIgniter/issues/1890

只需在生成通知的行上用$ this-> server('remote_addr')替换$ _SERVER ['REMOTE_ADDR']. - 修改/system/core/Input.php第351行

  • 这似乎是解决方法 - 不确定为什么EllisLabs不会自己对核心进行此更改,因为我从未正常触摸核心目录. (2认同)