ホームページ >バックエンド開発 >PHPチュートリアル >phpカール偽
http://www.yygh.net/index.php
フォームを直接送信しても、アカウントが存在しないというメッセージが表示され続けます。バックグラウンドで検証が必要である必要があります。
Originの原点を偽りたい。このような設定元のソースが分かりません
$ch =curl_init(); //Initialization
$this->url = "http://www.yygh.net/usercenter/userinfo_action.php";
$fields = ' actionpost=login&logintype=0&cardtype=1&userid=34262619702200379&pwd=123qwe&validate=cndm&imagesField.x=32&imageField.y=11';
curl_setopt($ch, CURLOPT_POST, 1);//POST モードに設定します
curl_setopt($ch , CURLOPT_POSTFIELDS,$fields ; ect: ')); //ヘッダー 'Expect: '
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //ドメイン名を解決するために IPV4 プロトコルの使用を強制します
curl_setopt( $ch, CURLOPT_URL, $this->url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 直接出力するのではなく、文字列を返します
$this->content=curl_exec($ch) ;
curl_close($ch);
ディスカッションに返信 (解決策)
print_r(get_headers('http://www.yygh.net/usercenter/userinfo_action.php'));Array (
[3] => パス =/
=> ; 有効期限: 1981 年 11 月 19 日木曜日 08:52:00 GMT
[5] => キャッシュ - 制御: no-store、no-cache、must-revalidate、post-check=0、pre-check=0
[ 6] => プラグマ: キャッシュなし
[7] => Cookie の設定 = 削除済み = 2013 年 10 月 31 日木曜日 00:41:46 GMT パス =/ ; Set-Cookie: JamesUserID=deleted; 有効期限=2013 年 10 月 31 日木曜日 00:41: 46 GMT;
=> Set-Cookie: JamesLoginTime=deleted; -2013 00:41:46 GMT; パス=/
[10] => コンテンツの長さ : 1073
[11] => 接続: 閉じる
[12] => コンテンツ タイプ: text/html )
あなたは彼の Cookie を受信も送信もしていないのに、どうすれば成功できるでしょうか?
print_r(get_headers('http://www.yygh.net/usercenter/userinfo_action.php'));
=> 有効期限: 1981 年 11 月 19 日木曜日 08:52 :00 GMT
= > キャッシュ制御: ストアなし、キャッシュなし、再検証する必要がある、ポストチェック = 0、事前チェック = 0
[6] => キャッシュなし
=> Cookie: JamesID=deleted; 有効期限 = 木、2013 年 10 月 31 日 00:41:46 GMT;
=> Set-Cookie: JamesUserID= 有効期限 = 2013 年 10 月 31 日 00 :41:46 GMT;
[9] => Set-Cookie: JamesLoginTime=deleted; 有効期限=2013 年 10 月 31 日木 00:41:46 GMT; Content-Length: 1073
[11] => 接続: close
[12] => Content-Type: text/html
)
Cookie を受信することも送信することもできません。
$cookie_file = dirname(__FILE__).'/cookie.txt'; //$cookie_file = tempnam("tmp","cookie"); //curl 只识别单引号字符串 $ch = curl_init(); //初始化 $this->url = "http://www.yygh.net/usercenter/userinfo_action.php"; curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //存储cookies curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //强制协议为1.0 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect: ')); //头部要送出'Expect: ' curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名 curl_setopt($ch, CURLOPT_URL, $this->url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出 $this->content=curl_exec($ch); curl_close($ch); $cookie_file = dirname(__FILE__).'/cookie.txt'; //$cookie_file = tempnam("tmp","cookie"); //curl 只识别单引号字符串 $ch = curl_init(); //初始化 $this->url = "http://www.yygh.net/usercenter/userinfo_action.php";$fields = 'actionpost=login&logintype=0&cardtype=1&userid=330724197712316212&pwd=123qwe&validate=cndm&imagesField.x=32&imageField.y=11'; curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式 curl_setopt($ch, CURLOPT_POSTFIELDS,$fields); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); //使用上面获取的cookies curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //强制协议为1.0 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect: ')); //头部要送出'Expect: ' curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名 curl_setopt($ch, CURLOPT_URL, $this->url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出 $this->content=curl_exec($ch); print_r(get_headers('http://www.yygh.net/usercenter/userinfo_action.php')); curl_close($ch); echo $this->content;
$cookie_file = dirname(__FILE__).'/cookie.txt';
=curl_init( ; _file); //ストレージ Cookie
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0), array('Expect: '); ); //ヘッダーは 'Expect: ' を送信する必要があります
curl_setopt($ ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ) // ドメイン名を解決するために IPV4 プロトコルを強制的に使用します
curl_setopt($ch, CURLOPT_URL, $this->url); curl_setopt($ ch、curlopt_returntransfer、true); usercenter/userinfo_action.php";
$fields = 'actionpost=login&logintype=0&cardtype=1&userid=330724197712316212&pwd=123qwe&validate=cndm&imagesField.x=32&imageField.y=11';
cur l_setopt($ch, CURLOPT_P OST、1) ;//セットポストモードcurl_setopt($ ch、curlopt_postfields、$ fields); should send 'Expect: curl_setopt(($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //必須 IPV4 プロトコルを使用してドメイン名を解決します
curl_setopt ($ch, CURLOPT_URL, ;url); IPv4 ‐ //文字列を直接出力するのではなく返します
$this->content=curl_exec($ch);
print_r(get_headers('http://www.yygh.net/usercenter/userinfo_action.php'));
curl_close($ch);
echo $this->content;
他有验证码,你是如何处理的?
他有验证码,你是如何处理的?
<?php$cookie_file = dirname(__FILE__).'/cookie.txt';if(isset($_GET['verification'])) { $url = 'http://www.yygh.net/include/validateimg.php?' . rand(); $ch = curl_init(); //初始化 curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); curl_setopt($ch, CURLOPT_URL, $url); curl_exec($ch); curl_close($ch); exit;}if(! $_POST) { $url = "http://www.yygh.net/usercenter/userinfo_action.php"; $ch = curl_init(); //初始化 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //存储cookies curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //强制协议为1.0 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect: ')); //头部要送出'Expect: ' curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出 $content = curl_exec($ch); curl_close($ch);echo <<< HTML<form method=post><img src='?verification=1'><input type=text name=code><input type=submit value=ok></form>HTML; exit;}else { $ch = curl_init(); //初始化 $url = "http://www.yygh.net/usercenter/userinfo_action.php"; $fields = array( 'actionpost' => 'login', 'logintype' => 0, 'cardtype' => 1, 'userid' => '330724197712316212', 'pwd' => '123qwe', 'validate' => $_POST['code'], //cndm&imagesField.x=32&imageField.y=11'; ); curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); //使用上面获取的cookies curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //强制协议为1.0 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect: ')); //头部要送出'Expect: ' curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出 $content = curl_exec($ch); curl_close($ch); echo $content; }
<?php$cookie_file = dirname(__FILE__).'/cookie.txt';if(isset($_GET['verification'])) { $url = 'http://www.yygh.net/include/validateimg.php?' . rand(); $ch = curl_init(); //初始化 curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); curl_setopt($ch, CURLOPT_URL, $url); curl_exec($ch); curl_close($ch); exit;}if(! $_POST) { $url = "http://www.yygh.net/usercenter/userinfo_action.php"; $ch = curl_init(); //初始化 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //存储cookies curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //强制协议为1.0 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect: ')); //头部要送出'Expect: ' curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出 $content = curl_exec($ch); curl_close($ch);echo <<< HTML<form method=post><img src='?verification=1'><input type=text name=code><input type=submit value=ok></form>HTML; exit;}else { $ch = curl_init(); //初始化 $url = "http://www.yygh.net/usercenter/userinfo_action.php"; $fields = array( 'actionpost' => 'login', 'logintype' => 0, 'cardtype' => 1, 'userid' => '330724197712316212', 'pwd' => '123qwe', 'validate' => $_POST['code'], //cndm&imagesField.x=32&imageField.y=11'; ); curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); //使用上面获取的cookies curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //强制协议为1.0 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect: ')); //头部要送出'Expect: ' curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出 $content = curl_exec($ch); curl_close($ch); echo $content; }