0

curl を使用してリモート URL に値を送信しようとしています。しかし、リモート サイトが別のページにリダイレクトされ、問題が発生しています。

たとえば、www.mywebsite.com から URL www.domain.com/index.php に値を送信すると、index.php は fetch.php ファイルにリダイレクトされますが、実際には www.mywebsite.com/fetch のように開きます。このファイルは私のものではなくリモートサイトにあるため、404 not foundエラーが発生します。どうすればこれを修正できますか

これは私が使用しているコードです

$postfields = "link=xxxxxx";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'domain.com/index.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);

curl_setopt($ch, CURLOPT_COOKIEJAR, 'rap.txt');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1');
$content = curl_exec($ch);
curl_close($ch);
4

3 に答える 3

0

最初に、ユーザーとして実行するアクションを複製することをお勧めします。

つまり、URLにアクセスして、それがどのように機能するか、つまり、データのフローが1つのURLから次のURLにどのように移動するかを確認します。次に、必要なデータを正しいURLに投稿して、それを複製します。

また、ページが悪用されていないことを確認するために、最初のURLがリファラーをチェックしている可能性もあります。

于 2012-06-09T19:59:31.577 に答える
0

オプションを設定しようとしましたかCURLOPT_FOLLOWLOCATION

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
于 2012-06-09T19:51:43.813 に答える
0

このコードを試してください:

curl_setopt($ch, CURLOPT_URL, 'http://www.domain.com/index.php');

それ以外の:

curl_setopt($ch, CURLOPT_URL, 'domain.com/index.php');
于 2012-06-09T19:59:22.230 に答える