php - 为什么我收到空字符串 PHP curl OpenCart
问题描述
我正在尝试通过 curl 从不同的来源访问一个功能,我放置在我的 OpenCart 网站中,该网站假设将当前产品存储在数据库中。
通常,每当有人试图访问 admin opencart 中的任何页面时,它都会被重定向到登录页面,这也发生在我的 curl 请求中。我通过 postfields 发送用户名和密码,以便像手动登录一样访问登录页面,因此我可以被重定向到我的函数。
我的功能是:
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);
}
虽然我的 curl 请求是:
$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 的函数
解决方案
推荐阅读
- r - 当相对误差不断下降时,如何修剪和使用复杂度参数(cp)?
- python - 如何在 Keras 中实现 Salt&Pepper 层?
- angular - 如何使用带有 idphint 属性的 angular keycloak 配置?
- php - 在 php 页面中嵌入 javascript
- c++ - 用一对对排序 STL 容器
- css - CSS:缩放字体一个恒定的因素
- java - 为什么login_register在满足变量后不运行?
- r - R:使用行/列替换另一个数据框的值
- android-workmanager - 如何在工作管理器中传递超过 1024 字节的数据?
- php - 如何使用 HTML 表格中的某些单元格并将其放入新表格中