15

Podążyłem za dokładnym przewodnikiem, który jest podany na oficjalnej witrynie codeigniter, aby uruchomić narzędzie CLI (interfejs wiersza poleceń). http://ellislab.com/codeigniter/user-guide/general/cli.htmlBłąd PHP napotkany podczas uruchamiania wiersza poleceń przy użyciu CodeIgniter 2.xx

Moje kontroler jest ...

<?php 
class Tools extends CI_Controller { 

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

} ?> 

Kiedy uruchomić następujące polecenie z mojego CMD otrzymuję następujący wynik (i błędów) w oknie wiersza polecenia:

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! 

Can ktoś wyjaśnia, dlaczego dostaję ten problem? Postępuję zgodnie z samouczkiem zgodnie z oficjalnym tutorialem CodeIliter CLI - wszelkie pomysły? Używam CodeIgniter 2.1.4 z XAMPP (Windows).

Odpowiedz

30

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

Wystarczy zastąpić $ _SERVER [ 'REMOTE_ADDR'] z $ this-> Serwer ('REMOTE_ADDR') na linii, która generuje powiadomienia. - modyfikacja /system/core/Input.php linia 351

+2

Wydaje się, że to obejście - nie jestem pewien, dlaczego EllisLabs nie wprowadzają tej zmiany do samego rdzenia, ponieważ zwykle nigdy nie dotykam głównego katalogu. – Zabs

Powiązane problemy