PC クライアントは crul 投稿データをバックグラウンドに渡します:
http://218.204.14.50/test/?oldip=61.141.251.21&newip=61.141.251.25&urldata=http://detail.ju.taabao.com/home.htm ?spm=601#/&agent=Mozilla/4.0 (互換; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E) &normal=100&error=102
バックグラウンド PHP データ取得コード:
$oldip=$_GET["oldip"];
$newip=$_GET["urldata"];
$agent=$_GET["agent" ];
$normal=$_GET["normal"];
$error=$_GET["error"];
file_put_contents(test.txt,$newip,FILE_APPEND); ) );
file_put_contents(test.txt,$urldata,FILE_APPEND);
file_put_contents(test.txt,$normal,FILE_APPEND); error ,FILE_APPEND);
?>
バックグラウンドでは、oldip、newip、および urldata データのみを取得できますが、エージェント、通常、およびエラー データは取得できません。その理由は何でしょうか。の解き方?
ありがとうございます!
ディスカッション(解決策)への返信
投稿なので、$_GET を使用して承認するにはどうすればよいですか? file_put_contents(test.txt,$oldip,FILE_APPEND); .txt,$newip,FILE_APPEND);
file_put_contents(test.txt,$urldata,FILE_APPEND);
file_put_contents(test.txt,$normal,FILE_APPEND); (test.txt,$error,FILE_APPEND);
?>
$_POST を使用すると、oldip、newip、urldata、agent、normal、error 変数のデータが受信できなくなります。
ありがとう!
URL にパラメータを入れて渡したら、どうやってデータを取得できるのでしょうか。
$_REQUEST
$_POST
$_GET
値がどこに渡されるかを確認するためにそれらをすべて記録してください
特定の値を渡すコードを記述するには?投稿して見てください
spm=601 があるため #/
慣例により # はアンカー ポイントを表し、テキスト サーバーには送信されません
したがって、後続のコンテンツはは切り捨てられるため、受信できません
post を使用して値を渡す場合、これは起こりません
Curl コードを投稿してください
明らかに、get メソッドで渡しています。
get で渡されるパラメータは、一度 urlencode で変換する必要があります。
http://218.204.14.50/test/?oldip=61.141.251.21&newip=61.141.251.25&urldata=http://detail.ju.taabao.com/home.htm?spm=601#/&agent=Mozilla/ 4.0 (互換性; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E) &normal=100&error=102
を
echo 'http://218.204.14.50/test/?oldip='.urlencode('61.141.251.21').'&newip='.urlencode('61.141.251.25').'&urldata='.urlencode('http://detail.ju.taobao.com/home.htm?spm=601#/').'&agent='.urlencode('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E) ').'&normal=100&error=102';
xuzuning と fdipzone モデレーター、ありがとうございます
curl コード:
CURL*curl;
curl_global_init(CURL_GLOBAL_ALL);
if(curl) {
CString url( " // /218.204.14.50/test/?oldip=");
url += csolip;
url += "&newip=";
url += csnewip;
url += "&urldata=";
url += csurldata ;
URL += "&agent=";
URL += "&error=";
URL += csagent;カール、CURLOPT_URL、CT2A(url));
curl_easy_setopt(curl、CURLOPT_HTTPGET);
res =curl_easy_perform(curl);
戻るクライアントが urlencode を使用してトランスコードした後も、バックグラウンドでデコードする必要がありますか?
ありがとう!
あなたは C++ または C# ですか
php urlencode に相当する関数はありますか?
ある場合は、 url += csolip; の形式の
を url += urlencode(csolip); の形式の
に変更します。エンコード後、PHP 側でデコードする必要はありません
ああ、クライアントが C++ であることを書き忘れました。試してみます。ありがとう!
urlencoding後は、エージェント、通常、エラーのデータはまだ取得できませんが、urldataの値をtestに設定した後、$_GETの場合、データは受信できるようになります。と $_REQUEST が使用されていません。他の解決策はありますか?ありがとう!
get メソッドには 2k の上限があります
したがって、post メソッドを使用する必要があります
http://www.baidu.com/s?wd=c%2B%2B+curl+post&ie=utf-8
$_GET には 2k の制限があります。代わりに POST を使用してください。
xuzuning と fdipzone モデレーター、ご返信ありがとうございます。クライアントが POST に切り替えた後、基本的にバックグラウンドでデータを取得できますが、新しい問題が発生しました。もう一度質問してください:
http://218.204.14.50/test/?oldip=61.141.251.21&newip=61.141.251.25&urldata=http://detail.ju.taabao.com/home.htm?uastk=8c3def7900&userid=301115#/&agent= Mozilla /4.0 (互換性; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E) &normal=100&error=102
バックエンド PHP コード:
oldip=$_POST['oldip'] ; //結果:61.141.251.21
newip=$_POST['newip']; //結果:61.141.251.25
agent=$_POST['agent']; //結果:Mozilla/4.0 (互換性あり; MSIE 6.0; Windows NT 5.1; QQDownload 732; .NET4.0E)
エラー=$_POST['エラー']; 102
上記の変数は正しく取得できますが、urldata の取得に問題があります
urldata=$$_POST['urldata']; //取得したいコンテンツ: http://detail.ju.taobao.com /home.htm?uastk= 8c3def7900&userid=301115#/ file_put_contents('test.txt', print_r($_POST,1));
test.txt の内容を投稿してください
urlencode を使用して解決されました。2 人のモデレーターに改めて感謝します。ありがとう!