ホームページ >バックエンド開発 >PHPチュートリアル >curl シミュレートされたログインの実装チュートリアル_PHP チュートリアル
126メールボックス、Renrenなどへの模擬ログイン。必要に応じて修正してください。コードは次のとおりです
//認証コードWebサイトへのログインをシミュレートし、まず認証コード画像のCookieを取得します
define('SCRIPT_ROOT',dirname(__FILE__).'/');
$cookieFile = SCRIPT_ROOT.'cookie.tmp';
/*シミュレートされたブラウザ*/
$user_agent = "Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";
//ここで Cookie を知っている場合は、ターゲットのブラウザに直接送信できます
//$cookie = "lang=zh-cn; JSESSIONID=6AF7DA3F6A5FC3ECA39A7485C3FDBBAE";
$header = 配列(
「ホスト:login.bioman.com」、
「参照元: http://www.bioman.com」、
);
//認証コード画像URL
関数getCookie($url){
グローバル $cookieFile;
$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_HTTPGET, 1 ); // 通常の GET リクエストを送信します
curl_setopt($curl,CURLOPT_COOKIEJAR, $cookieFile); // 返されたクッキー情報をファイルに保存します
$res =curl_exec($curl);
curl_close($curl);
}
関数ログイン($url){
グローバル $cookieFile,$header,$agent;
$data = array(
「名前」=>「バイオマン」
);
$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, $agent ); // ユーザーが使用するブラウザをシミュレートします
curl_setopt($curl, CURLOPT_HTTPHEADER, $header) //ヘッダー情報を設定する場所
@curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 自動ジャンプを使用します
;//curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 通常の GET リクエストを送信します
curl_setopt ( $curl, CURLOPT_POST, 1 ); // 通常の Post リクエストを送信します
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data ); // 送信されたデータパッケージを投稿します
//curl_setopt ( $curl, CURLOPT_COOKIE, $cookie) // Cookie コンテンツを直接送信します
curl_setopt($curl,CURLOPT_COOKIEFILE, $cookieFile) //Cookieファイルを送信します
curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 無限ループを防ぐためにタイムアウト制限を設定します
curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 返されたヘッダー領域の内容を表示しません
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 取得した情報はファイルストリームの形式で返されます
$res =curl_exec ($curl) // 操作を実行します
;if (curl_errno ( $curl )) {
「失敗: Errno」を返します。curl_error ( $curl );
}
curl_close ( $curl ); // CURL セッションを閉じる
$res を返す;
}
//1.
$auth_url = "http://www.bioman.com/auth";
getCookie($auth_url); //認証コードCookieを取得します
//2.
$url = 'http://www.bioman.com/home' //ログイン後に送信されたURL
;$res = login($url);
print_r($res);
。