-
-
header("Content-type:text/html;charset=utf-8"); - $cookie_file = dirname(__FILE__)."/cookie_".md5( basename(__FILE__)).".txt"; //Cookieファイルの保存パスとファイル名を設定します
- function vlogin($url,$data){ //ログインをシミュレートしてCookieを取得します
- $curl =curl_init(); // CURL セッションを開始します
- curl_setopt($curl, CURLOPT_URL, $url); // アクセスするアドレス
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0) // 認証証明書のソースを確認します
- curl_setopt($curl) , CURLOPT_SSL_VERIFYHOST, 1) ; // 証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します
- curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']) // ユーザーが使用するブラウザをシミュレートします
- curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 自動リダイレクトを使用する
- curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // リファラーを自動的に設定する
- curl_setopt($curl, CURLOPT_POST, 1); // 通常の Post リクエストを送信する
- curl_setopt($curl, CURLOPT_POSTFIELDS, $data) ; // Post によって送信されたパケット
- curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']) // Cookie 情報を保存するファイルの名前
- curl_setopt($curl, CURLOPT_COOKIEFILE, $ GLOBALS['cookie_file']); // 上記に保存されている Cookie 情報を読み取ります
- curl_setopt($curl, CURLOPT_TIMEOUT, 30) // 無限ループを防ぐためにタイムアウト制限を設定します
- curl_setopt($curl, CURLOPT_HEADER, 0);返されたヘッダー領域の内容
- curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); // 取得した情報はファイルストリームの形式で返されます
- $tmpInfo =curl_exec($curl) // 操作を実行します
- if ( curl_errno($curl)) {
- echo 'Errno'.curl_error($curl); }
- curl_close($curl) // CURL セッションを閉じる
- return $tmpInfo;
-
- function vget( $url){ // コンテンツを取得する関数をシミュレートします
- $curl =curl_init(); // CURL セッションを開始します
- curl_setopt($curl, CURLOPT_URL, $url) // アクセスするアドレス
- curl_setopt($curl); , CURLOPT_SSL_VERIFYPEER, 0); // 認証証明書のソースを確認します
- curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, 1) // 証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します
- curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[' HTTP_USER_AGENT']); // ユーザーが使用するブラウザをシミュレートします
- curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 自動リダイレクトを使用します
- curl, CURLOPT_AUTOREFERER, 1) // リファラーを自動的に設定します
- curl_setopt($) curl, CURLOPT_HTTPGET, 1); // 通常の Post リクエストを送信します
- curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']) // 上に保存されている Cookie 情報を読み取ります
- curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 無限ループを防ぐためのタイムアウト制限を設定します
- curl_setopt($curl, CURLOPT_HEADER, 0); // 返されたヘッダー領域の内容を表示します
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 取得した情報はファイルストリームの形式
- $tmpInfo =curl_exec($curl); // 操作を実行します
- if (curl_errno($curl)) {
- echo 'Errno'.curl_error($curl)
- }
- curl_close($curl); ; // CURL セッションを閉じる
- return $tmpInfo; // データを返す
- }
-
- function vpost($ url,$data){ // データ送信関数をシミュレートする
- $curl =curl_init(); // CURL セッションを開始する
- curl_setopt($curl, CURLOPT_URL, $url); // アクセスするアドレス
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0) // 認証証明書のソースを確認します
- curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します
- curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT'] ) // ユーザーが使用するブラウザをシミュレートします
- curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); / 自動ジャンプを使用する
- curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // リファラーを自動的に設定する
- curl_setopt($curl, CURLOPT_POST , 1) // 通常の Post リクエストを送信する
- curl_setopt($curl, CURLOPT_POSTFIELDS, $data); ; // 送信されたデータ パケットを送信します
- curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']) // 上記に保存されている Cookie 情報を読み取ります
- curl_setopt($curl, CURLOPT_TIMEOUT, 30) // タイムアウト制限を設定します無限ループ
- curl_setopt($curl, CURLOPT_HEADER, 0); // 返されたヘッダー領域の内容を表示します
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1) // 取得した情報はファイルストリームの形式で返されます
- $ tmpInfo =curl_exec($curl); // 操作を実行します
- if (curl_errno($curl)) {
- echo 'Errno'.curl_error( $curl) }
- curl_close($curl); // キー CURL セッション
- return $tmpInfo; // データを返す
- }
function delcookie($cookie_file){ // Cookie を削除する関数
- @unlink($cookie_file) // 削除を実行する
- }
function readcookies( $file)
- {
- $result = null;
-
- $fp = fopen( $file, "r" );
- if($fp)
- {
- while ( !feof( $fp ) )
- {
- $buffer = fgets( $fp, 4096 );
- $result = $buffer;
- //$tmp = @split( "/t", $buffer );
- //$ result[@trim( $tmp[5] )] = @trim( $tmp[6] );
- }
-
- fclose($fp);
- }
-
- return $result;
- }
- $url = 'http: //w.mail.qq.com/cgi-bin/loginpage?f=xhtml';
- if(!file_exists($cookie_file)) { // Cookie が存在するかどうかを確認します
- $str = vget($url) / / 送信背景を取得
- preg_match("/action="([^"]*?)"/isU",$str,$hash); // ログインランダム値を抽出
- print_r($hash[1]);
- vlogin( $hash[1],'&f=xhtml&uin=あなたの qq 番号&aliastype=@qq.com&pwd=qq 番号パスワード&mss=1'); // ログインして Cookie
}
- else
- {
- vget("http://w30.mail.qq.com/cgi-bin/today?sid=ggQq2H-cUHdDdHs0z6rT6vN8,4,z-yTNgDwU&first=1");
- echo 'Cookie が生成されました'
- }
- ? >
コードをコピー
>>> PHP シミュレートされたログインに関するその他の記事については、トピック リンクを参照してください: PHP シミュレートされたログイン php Curl シミュレートされたログイン チュートリアル コレクション
|