1
opencartのcurl phpのHTTP_HEADERSに関連する問題があります。以下のコードは発信者です。基本認証サーバー関連のPHP
$ch = curl_init();
$url = 'http://aaa.com/index.php?route=common/home/getTotalCustomer';
$url2 = 'http://bbb.com/index.php?route=common/home/getTotalCustomer';
$url3 = 'http://ccc.com/index.php?route=common/home/getTotalCustomer';
$header = array('Authorization:Basic ' . base64_encode('user:password'));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$results = curl_exec($ch);
echo '<pre>';
print_r(json_decode($results, true));
echo '</pre>';
受信コード以下のように:
public function getTotalCustomer(){
$json = array();
$this->load->model('account/customer');
if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])){
if(($_SERVER['PHP_AUTH_PW'] == 'password') && ($_SERVER['PHP_AUTH_USER'] == 'user')){
$json['total_customer'] = $this->model_account_customer->getTotalCustomer();
}
} else{
$json['message'] = 'failed';
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
私は別のサーバーで複数のドメインにしようとしました。一部のサーバーはデータを返すことができますが、一部のサーバーはデータを返すことができません。どうして?
curl_setopt($ ch、CURLOPT_USERPWD、$ username); '。$ password);' – arkascha
このコードに変更を加えることはできません.. – LunGuang
これは基本認証がどのように行われるかです。応答できないサーバーで何かが失敗する可能性がありますか?デバッグする必要がありますので、httpサーバのエラーログファイルを調べてください。 – arkascha