15

Ho seguito la guida esatta fornita sul sito Web ufficiale di codesign per l'esecuzione dello strumento CLI (command-line interface). http://ellislab.com/codeigniter/user-guide/general/cli.htmlErrore PHP durante l'esecuzione di Command Line utilizzando CodeIgniter 2.xx

mio controller è ...

<?php 
class Tools extends CI_Controller { 

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

} ?> 

Quando eseguo il seguente comando dal mio CMD ottengo il seguente output (ed errori) nella finestra di riga di comando:

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 qualcuno spiega perché sto avendo questo problema? Sto seguendo il tutorial come per il tutorial del codice CLI ufficiale di CodeIgner - qualche idea? Sto usando CodeIgniter 2.1.4 con XAMPP (Windows).

risposta

30

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

basta sostituire $ _SERVER [ 'REMOTE_ADDR'] con $ this-> Server ('REMOTE_ADDR') alla linea che genera l'avviso. - modifica /system/core/Input.php line 351

+2

Questa sembra essere la soluzione alternativa - non sono sicuro del motivo per cui EllisLabs non apporta questa modifica al core, anche se normalmente non tocchi la directory principale. – Zabs

Problemi correlati