我正在尝试通过其他来源的curl访问功能,该功能已放置在我的OpenCart网站中,该网站应该是将当前产品存储在数据库中。
通常,每当有人尝试访问admin opencart中的任何页面时,它将被重定向到登录页面,这也与我的curl请求有关。我通过邮递区发送用户名和密码,以便像手动登录一样访问登录页面,因此可以将我重定向到我的函数。
我的职能是:
public function get_settings(){
$this->load->model('catalog/product');
$this->load->model('tool/image');
$return = $this->model_catalog_product->getProducts();
$array = array();
foreach($return as $ret){
$array[] = array(
'product_id' => $ret['product_id'],
'product_image' => ($ret['image']) ? $this->model_tool_image->resize($ret['image'], 40, 40) : $image = $this->model_tool_image->resize('no_image.png', 40, 40),
'product_name' => $ret['name'],
'product_model' => $ret['model'],
'product_quantity' => $ret['quantity'],
'product_price' => $this->currency->format(number_format($ret['price'], 2, '.', ''), $this->config->get('config_currency')),
'product_status' => ($ret['status'] == 1) ? 'Enabled' : 'Disabled'
);
}
echo json_encode($array);
}
我的卷曲请求将是:
$params = array(
'username' => $this->session->userdata('admin_user'),
'password' => $this->session->userdata('admin_pass'),
'redirect' => $this->session->userdata('domain').'admin/index.php?route=catalog/product/get_settings'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->session->userdata('domain').'admin/index.php?route=common/login');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);
curl_close($ch);
var_dump($return);
我没有收到任何错误消息。我检查了日志文件。我只得到一个空字符串。 OpenCart在登录时验证是否存在我发送的任何重定向帖子值,以便将我转发到该特定页面,该页面是返回我的JSON的功能