【问题标题】:PHP Error encountered when running Command Line using CodeIgniter 2.xx使用 CodeIgniter 2.xx 运行命令行时遇到 PHP 错误
【发布时间】:2013-08-06 14:12:51
【问题描述】:

我已按照官方 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;
    }

} ?>

当我从 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!

谁能解释我为什么会遇到这个问题?我也在按照官方 Codeigniter CLI 教程学习教程 - 有什么想法吗?我正在使用 CodeIgniter 2.1.4 和 XAMPP (Windows)。

【问题讨论】:

    标签: php codeigniter command-line codeigniter-2 command-line-interface


    【解决方案1】:

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

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

    【讨论】:

    • 这似乎是解决方法 - 不知道为什么 EllisLabs 自己不对核心进行此更改,尽管我从未正常接触过核心目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2020-10-15
    • 2013-02-18
    • 2014-10-13
    • 1970-01-01
    • 2018-10-31
    • 2019-06-21
    相关资源
    最近更新 更多