ホームページ > バックエンド開発 > PHPチュートリアル > PHPのデータ取得の問題について質問する

PHPのデータ取得の問題について質問する

WBOY
リリース: 2016-06-23 13:47:11
オリジナル
958 人が閲覧しました

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 を使用して承認するにはどうすればよいですか?
$_POST を使用してください

$newip=$_POST["newip"];
$urldata=$_POST["urldata"]; =$_POST["エージェント"];

$normal=$_POST["エラー"];

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
値がどこに渡されるかを確認するためにそれらをすべて記録してください

特定の値を渡すコードを記述するには?投稿して見てください

そうですね、実際には 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';
ログイン後にコピー

http://218.204.14.50/test に変更する必要があります/ ?oldip=61.141.251.21&newip=61.141.251.25&urldata=http%3A%2F%2Fdetail.ju.taabao.com%2Fhome.htm%3Fspm%3D601%23%2F&agent=Mozilla%2F4.0+%28互換%3B+ MSIE+6.0%3B+Windows+NT+5.1%3B+SV1%3B+QQダウンロード+732%3B+.NET4.0C%3B+.NET4.0E%29+&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

urlencode 後もエージェント、通常、エラーのデータは取得できませんが、urldata の値をテストに設定した後は、$_GET と $_REQUEST の長さに制限があるのか​​なと思います。は使用されていません。他の解決策はありますか?ありがとう!



$_GET には 2k の制限があります。代わりに POST を使用してください。

xuzuning と fdipzone モデレーター、ご返信ありがとうございます。クライアントが POST に切り替えた後、基本的にバックグラウンドでデータを取得できますが、新しい問題が発生しました。もう一度質問してください:

PC クライアント vc ++ crul post data to the background :

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)

結果: 100

エラー=$_POST['エラー']; 102

上記の変数は正しく取得できますが、urldata の取得に問題があります

urldata=$$_POST['urldata']; //取得したいコンテンツ: http://detail.ju.taobao.com /home.htm?uastk= 8c3def7900&userid=301115#/
ただし、実際に取得されたコンテンツ: http://detail.ju.taabao.com/home.htm?uastk=8c3def7900、&userid=301115#/ を取得できません。アンパサンドの分離に問題がある場合は、この状況をどのように処理するかを尋ねてください。
あなた

file_put_contents('test.txt', print_r($_POST,1));
test.txt の内容を投稿してください

urlencode を使用して解決されました。2 人のモデレーターに改めて感謝します。ありがとう!

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート