これはかなり問題です。CodeIgniterプロジェクトでcURLを使用してコントローラを呼び出す
[project_url] /管理/ orderpicking/get_updated_statusesで私はCodeIgniterのプロジェクトにコントローラ機能を作成しました関数名:get_updated_statuses コントローラ名:Orderpicking.php コントローラ場所:アプリケーション/管理
コントローラ内部私が持っているすべては、私は、コントローラを打っていたことを確認するために
ob_start();
print_r('success');
file_put_contents('file.txt', ob_get_contents());
ob_end_clean();
です。
私はブラウザから直接コントローラに当たったとき、ファイルは内容として「成功」を伴って作成されます。
他のプロジェクトのcURLを使用してコントローラをヒットすると、何も起こりません。結果は空の文字列です(結果は気にしませんが、file.txtファイルは作成されません)。次のようにコントローラがある呼び出す
コード:
$data = array('datetime'=>new DateTime());
$header = array(
'Identification:Portal::ReadAPI', // TODO config
'Content-Type:application/x-www-form-urlencode'
);
$url = '[local instance]/admin/orderpicking/get_updated_statuses'; // TODO config
$curlGetUpdatedItems = curl_init($url);
/** CURL OPTIONS */
curl_setopt($curlGetUpdatedItems, CURLOPT_POST, 1);
curl_setopt($curlGetUpdatedItems, CURLOPT_POSTFIELDS, json_encode(serialize($data)));
curl_setopt($curlGetUpdatedItems, CURLOPT_HTTPHEADER, $header);
curl_setopt($curlGetUpdatedItems, CURLOPT_RETURNTRANSFER, true);
// curl_setopt($curlGetUpdatedItems, CURLOPT_SSL_VERIFYPEER, true);
// curl_setopt($curlGetUpdatedItems, CURLOPT_SSL_VERIFYHOST, 2);
// curl_setopt($curlGetUpdatedItems, CURLOPT_CAINFO, $certificate_location);
/** CURL OPTIONS */
$result = curl_exec($curlGetUpdatedItems);
は、私がここで作ってるんだ、明らかな間違いがありますか? 後でポータルhttpsを作成するときに証明書を追加しますが、それまでは必要と思わないでしょうか?
どのようなヘルプやアドバイスは大歓迎です!
----- UPDATEは-----
結果をvar_dump'ing後、私は真のブール値が返されることに気付きました。 curl_error($curlGetUpdatedItems)
は、空の文字列を返します。
「この他のプロジェクト」はどこですか? localhostは自分のPCの外部からはアクセスできません。他のものがあなたのlocalhostを見つけることができるようにローカルDNSエントリを設定していますか? – MonkeyZeus
あなたの "他のプロジェクト"から[[curl_error() '](http://php.net/manual/en/function.curl-error.php)を試してください – MonkeyZeus
どこにいてもエラー報告が有効になっていますか? Webサーバーのアクセスログを確認しましたか? – MonkeyZeus