ホームページ >バックエンド開発 >PHPチュートリアル >シミュレートされた投稿が失敗するのはなぜですか?

シミュレートされた投稿が失敗するのはなぜですか?

WBOY
WBOYオリジナル
2016-06-13 13:00:05995ブラウズ

シミュレートされた投稿が失敗するのはなぜですか?

この投稿は、h420943302 によって 2012-12-11 11:18:30 に最終編集されました
<form action="__URL__/test" method="post"><br />
<tr><br />
<td width="90" align="right" height="26">被认证人姓名:</td><br />
<td style="text-align: left"><br />
<input name="checkname" type="text" size="12" /><font color="#FF0000">*</font>(请填写中文字符)<br />
</td></tr><br />
<tr><br />
<td width="90" align="right" height="26">身份证号:</td><br />
<td style="text-align: left"><br />
<input name="checknum" type="text" size="16" /><font color="#FF0000">*</font>(15或18位数字)<br />
</td></tr><br />
<tr><br />
<td width="90"> </td><br />
<td><br />
<input type="submit" name="button01" value="确认身份信息认证" id="button01"  /><br />
</td></tr></form>

$url='http://127.0.0.1/think_proj/review/index.php/Curl';<br />
$cookie_id=' ECS[visit_times]=2;vvxU_2132_saltkey=oAOaIinB;vvxU_2132_lastvisit=1353993212; vvxU_2132_ulastactivity=1fcbqdoGt1V5Yt5eRaTVuz%2Bwjv1qvM09zYAqbDb4KL6RKzWORniM; lzstat_uv=11374893582414091332|923667; PHPSESSID=pcq1alboi8sq3r9n7d32du20m6';<br />
$post_fields='checkname='.urlencode($name).'&checknum='.$num;<br />
$ch = curl_init($url);<br />
curl_setopt($ch, CURLOPT_POST, 1);<br />
curl_setopt($ch, CURLOPT_HEADER, 0);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />
curl_setopt($ch, CURLOPT_COOKIE, $cookie_id);<br />
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);<br />
$contents = curl_exec($ch);<br />
curl_close($ch);echo $contents;

送信前はすべて画面が表示されるのに、投稿後は画面が表示されないのはなぜですか? 何を間違って書いたのでしょうか? 。
------解決策---------
// リクエストデータをシミュレートします
Function Curl($url,$postfields,$referer='',$cookie_jar='./cookie.txt'){
$Cur =curl_init();
$Opt = Array(
CURLOPT_URL => $url,
CURLOPT_HEADER => 1、
CURLOPT_NOBODY => 1、
CURLOPT_PORT => 80, //ポート
CURLOPT_POST => 1, //フォーム送信と同様に、application/x-www-form-urlencoded タイプの通常の POST リクエストを送信します。
CURLOPT_POSTFIELDS => $postfields, //ファイルを送信する場合は、@
で始まるファイル名が必要です。 CURLOPT_RETURTRANSFER => 1,//取得された情報は、直接出力されるのではなく、ファイル ストリームの形式で返されます。

CURLOPT_SSL_VERIFYHOST => 1,//証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します
CURLOPT_SSL_VERIFYPEER => 0, // 認証証明書のソースを確認します。0 は、証明書の有効性を確認しないことを意味します。
//CURLOPT_COOKIE =>GetCook($url),

//CURLOPT_USERAGENT => "Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.0)", // ユーザーが使用するブラウザをシミュレートし、HTTP リクエストに「user-agent」ヘッダー文字列を含めます。
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1',
CURLOPT_FOLLOWLOCATION => 1、
CURLOPT_COOKIEJAR => ディレクトリ名(__FILE__).$cookie_jar,
CURLOPT_COOKIEFILE => ディレクトリ名(__FILE__).$cookie_jar,
CURLOPT_REFERER => $リファラー、
);
curl_setopt_array($Cur,$Opt);
$code =curl_exec($Cur);
curl_close($Cur);
unSet($Cur);
$code を返します;
}

関数 GetCook($url) {
$Curl=curl_init($url);
curl_setopt($Curl,CURLOPT_HEADER,1);
curl_setopt($Curl,CURLOPT_RETURNTRANSFER,1);
$Cook=curl_exec($Curl);
curl_close($Curl);
$Out='';
preg_match("/ssid=(.[^;]*)/i",$Cook,$Out);
$Out[1] を返します;
}

$url = "http://pcik.7di.net/pcik_in";
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。