2

CURL を請求ソフトウェアとして使用し、CCproxy Web パネルの情報を変更するスクリプトをプログラムしようとしています。

しかし、私には問題があります:

これは私のコードです:

$url="http://xxxxxxx:88/account";
$postfields["form"] = "1";
$postfields["adminpassword"] = "newpassword";
$postfields["changeadminpassword"] = "Modify";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, 'admin:password');


curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, true);

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


$data = curl_exec($ch);
curl_close($ch);

echo $data;

post および postfield オプションなしで使用すると、すべてのユーザー リスト フォーム ccproxy Web パネルをエコーし​​、次の http 応答でページのソース コードを表示できます。

HTTP/1.0 200 OK サーバー: CCProxy プラグマ: no-cache,no-store Cache-control: no-cache,no-store Connection: close Content-length: 200107 Content-type: text/html

開始には適していますが、postfields と post メソッドを使用しようとすると、http 302 エラーが発生し、何も機能しません。これは http 応答です。

HTTP/1.1 302 Found サーバー: CCProxy 6.6 プラグマ: no-cache,no-store Cache-control: no-cache,no-store Location: /account

ccproxy Web パネルにクエリを投稿して、ユーザーなどを変更する方法を教えてください。

HTMLフォームを確認したところ、アクションフィールドは「account」、メソッドは「post」

また、このソースコードで .html ファイルを作成すると、うまくいきます!

<form action="http://xxxxxx:88/account" method="post" name="form">
<input type="text" value="newpassword" name="adminpassword">
<input type="submit" class="button" value="Modify" name="changeadminpassword">
</form>

ありがとうございました

4

1 に答える 1

2

302 はリダイレクトですhttp://en.wikipedia.org/wiki/HTTP_302

この設定を追加してみてください

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
于 2012-08-10T16:35:51.297 に答える