「open_basedir」が設定されている共有サーバーでホストしている Web サイトに問題があります...そのため、クレジット システムはエラーをスローし、購入者のクレジット カードに請求しません。
エラーメッセージ
警告: curl_setopt() [function.curl-setopt]: safe_mode または open_basedir が設定されている場合、CURLOPT_FOLLOWLOCATION を有効にできません
コード
function http_post($method, $server, $port, $url, $vars) {
$postdata = "";
foreach($vars as $key => $value) {
$postdata .= urlencode($key) . "=" . urlencode($value) . "&";
}
$postdata = substr($postdata,0,-1);
$content_length = strlen($postdata);
$headers = "POST $url HTTP/1.1\r\n".
"Accept: */*\r\n".
"Accept-Language: en-nz\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"Host: $server\r\n".
"Connection: Keep-Alive\r\n".
"Cache-Control: no-cache\r\n".
"Content-Length: $content_length\r\n\r\n";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $method . '://' . $server .":". $port . $url);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
$ret = curl_exec($ch);
curl_close($ch);
return $ret;
}
ルート PHP.ini にアクセスせずに、ホストを切り替えることなく、とにかくこれを回避する方法はありますか? ありがとうございました。