2

codeigniter と hostgator で次の cron ジョブを実行しようとしています

/usr/bin/php /home/username/public_html/index.php cronjob contact martin

しかし、何も起こりません。次のメールを受け取ります。

<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>

<p>Severity: Warning</p>
<p>Message:  Cannot modify header information - headers already sent by (output started at /home/iglesias/public_html/mysite.com/system/core/Exceptions.php:185)</p>
<p>Filename: libraries/Session.php</p>
<p>Line Number: 675</p>

私のコントローラーは次のとおりです(テストのためにメールを送信するだけです)。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Cronjob extends CI_Controller {

function __construct()
{
    parent::__construct();
    $this->cron();
}

function cron()
{
    if(!$this->input->is_cli_request())
    {               
        die();
    }
}

function contact($name)
{
    $this->load->library('email');
    $config['mailtype'] = 'html';
    $this->email->initialize($config);

    $this->email->from('test@gmail.com', $name);
    $this->email->to('test2@gmail.com');
    $this->email->subject('test');
    $this->email->message('test sent');             
    $this->email->send();
}
}

私は何か間違ったことをしていますか?よろしくお願いします。

URLから呼び出されたときにindex.phpを削除するように.htaccessを変更しましたが、これが何か関係があるかどうかはわかりません。

ありがとう

4

4 に答える 4

14

私の答えはずっと後になりますが、それは他の人を助けることができます. このエラーは明らかによく知られていますが、簡単な修正しかありません: http://ellislab.com/forums/viewthread/227672/ セッションライブラリを自動ロードすると発生し、CI_Input::ip_address() を呼び出します。初期化されていないか、そのようなものです。クイックフィックスは入力クラスにあります (core/Input.php Line 351 (CI 2.1.2)):

$this->ip_address = $_SERVER['REMOTE_ADDR'];

なる :

if(isset($_SERVER['REMOTE_ADDR']))
   $this->ip_address = $_SERVER['REMOTE_ADDR'];
else
   $this->ip_address = '0.0.0.0';

お役に立てれば。

于 2013-07-17T14:50:04.517 に答える
0

Hostgator がモジュールではなく Fast-CGI として Apache を実行しているかどうかを確認します。その場合、PHP への実行パスは、使用しているものとは異なる可能性があります。

phpinfo をチェックすると、関連する情報が表示される場合があります。

于 2013-04-02T15:48:42.670 に答える
0

config/routes.php で正しいルートを設定しましたか? ブラウザからスクリプトを実行してみて (または実行部分をコメントアウトして)、現在のルート/htaccess 設定でアクセスできることを確認してください。

于 2013-04-02T15:46:50.093 に答える