同様のタイトルの質問をたくさん読みましたが、どれもうまくいきませんでした...
問題は、cURL クエリを Web サイトに送信すると、空白のページしか表示されないことです。
これが私のコードです:
<?php
$action = "http://www.website.com/index.php?section=login&do=process";
$fields = array(
'username' => $user,
'rememberMe' => '1'
);
$login = curl_post($action, $fields);
var_dump($login);
function curl_post($url, array $post = NULL, array $options = array())
{
$defaults = array(
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_HTTPHEADER => array('Accept-Language: pl,en-us;q=0.7,en;q=0.3', 'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7'),
CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
CURLOPT_URL => $url,
CURLOPT_FRESH_CONNECT => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FORBID_REUSE => 1,
CURLOPT_TIMEOUT => 4,
CURLOPT_NOBODY => false,
CURLOPT_POSTFIELDS => http_build_query($post)
);
$ch = curl_init();
curl_setopt_array($ch, ($options + $defaults));
if( !$result = curl_exec($ch))
{
return(curl_error($ch));
}
curl_close($ch);
return $result;
}
?>
もちろん、私はPHPでcURLを有効にしているので、それについてではありません。アイデアがあれば、共有してください!
アップデート
また、PHP ファイルの先頭に次の行を追加しようとしています。
ini_set("display_errors", 1);
error_reporting(E_ALL);
しかし、問題はまだ発生しています - 結果は空白のページです。使うfile_get_contents("http://website.com/");
とページの中身が見えるので、cURLだけでは動きません。