【发布时间】:2016-03-02 05:47:18
【问题描述】:
我正在执行一项向数据库添加值的 cron 作业。我正在使用 Codeigniter。我正在使用终端测试脚本。它在我的本地机器上工作(我正在使用 MAMP),但是当我将它上传到我的服务器并运行脚本时,它给了我以下错误: 状态:500 内部服务器错误 内容类型:text/html; charset=UTF-8
无论我做什么,它都不会做任何不同的事情。这是什么原因造成的,我该如何解决?
已编辑:
我正在使用 Codeigniter 3.0.3。
Cron 控制器
class Cron extends MY_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('cron_m');
}
public function index()
{
if(!$this->input->is_cli_request())
{
echo "This script can only be accessed via the command line" . PHP_EOL;
return;
}
$data = array('value' => 'test');
$this->cron_m->save($data);
echo 'saved!';
}
}
前端控制器
class Frontend_Controller extends MY_Controller {
function __construct()
{
parent::__construct();
$this->load->helper('form');
$this->load->library('form_validation');
}
public function lock()
{
$this->load->library('session');
$this->load->model('user_m');
// Login check
$exception_uris = array(
'admin/user/login',
'admin/user/logout'
);
if (in_array(uri_string(), $exception_uris) == FALSE)
{
if ($this->user_m->loggedin() == FALSE)
{
$uri = $this->uri->uri_string();
$this->session->set_tempdata('uri', $uri);
redirect('admin/user/login');
}
}
}
}
MY_Controller
class MY_Controller extends CI_Controller {
public $data = array();
function __construct() {
parent::__construct();
$this->data['errors'] = array();
}
}
Cron_m 模型
class Cron_m extends MY_Model {
public $_table_name = 'CRON';
protected $_order_by = 'id';
public function __construct()
{
parent::__construct();
}
}
MY_Model
class MY_Model extends CI_Model {
public $_table_name = '';
protected $_primary_key = 'id';
protected $_primary_filter = 'intval';
protected $_order_by = 'order';
function __construct()
{
parent::__construct();
}
public function save($data, $id = NULL)
{
//INSERT
if ($id === NULL)
{
!isset($data[$this->_primary_key]) || $data[$this->_primary_key] = NULL;
$this->db->set($data);
$this->db->insert($this->_table_name);
$id = $this->db->insert_id();
}
//UPDATE
else
{
$filter = $this->_primary_filter;
$id = $filter($id);
$this->db->set($data);
$this->db->where($this->_primary_key, $id);
$this->db->update($this->_table_name);
}
return $id;
}
}
.htaccess
RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt|assets|uploads|podcast\.xml)
RewriteRule ^(.*)$ /index.php/$1 [L]
【问题讨论】:
-
你的 CI 版本是多少??也添加代码
-
添加了我的代码和版本
-
这里有会话吗??
-
我的意思是进入 cron 控制器,你需要任何会话吗?喜欢用户必须登录才能使用 cron??
-
不,由于尝试进入数据库时 ip_address 不可用,我遇到了会话问题。所以没有会话
标签: php mysql codeigniter cron