ホームページ > バックエンド開発 > PHPチュートリアル > 初心者は、PHP で模擬ログインを実行し、Web ページのコードに従って入力しますが、結果が表示されません。

初心者は、PHP で模擬ログインを実行し、Web ページのコードに従って入力しますが、結果が表示されません。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-23 13:26:48
オリジナル
877 人が閲覧しました

これは、Web ページのプロンプトに従って PHP シミュレートされたログインのコードに従って変更されたログイン コードであり、オープンソース中国へのシミュレートされたログインです。
function login_post($url, $cookie, $post) {
$curl =curl_init();//curl モジュールを初期化
curl_setopt($curl, CURLOPT_URL, $url);// 送信されたアドレスにログイン
curl_setopt($curl, CURLOPT_HEADER, 0);//ヘッダー情報を表示するかどうか
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//返された情報を自動的に表示するかどうか
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); / / 指定したファイルに保存するCookie情報を設定
curl_setopt($curl, CURLOPT_POST, 1);//ポストモードで送信
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//送信する情報
curl_exec($curl);//cURL を実行
curl_close($curl);//cURL リソースを閉じ、システム リソースを解放します
}

//ログイン成功後にデータを取得します
function get_content($url, $cookie) {
$ Ch = curl_setopt($ ch、$ url); ); // Cookie を読み取ります
$rs =curl_exec($ch); // cURL を実行してページのコンテンツをキャプチャします
}

$post = array (
'email' = &g t ; 'smud1994@163.com'、
'pwd' => '/my'、
'error_page' => => ; '1',
'submit' => '今すぐログイン'
);

//ログインアドレス
$url = "http://m.oschina.net/login"; Cookie 保存パス
$cookie = dirname(__FILE__) . '/cookie_oschina.txt'
//ログイン後に情報を取得するアドレス
$url2 = "http://m.oschina.net/my"; /模擬ログイン
login_post($url, $cookie, $post);
//ログインページ情報を取得
$content = get_content($url2, $cookie)
//Cookie ファイルを削除
@ unlink($cookie);
// 一致するページ情報
$preg = "/(.*)/i";
preg_match_all($preg, $content, $arr); str = $ arr [1] [0]。 。

Baidu は 50 行目のエラーを報告して修正しましたが、
$str=$arr[1]; に変更しました
配列から文字列への変換というエラー メッセージが表示されました
エラー メッセージに従って、var_dump($ arr);
次に、次のように表示されます:
array(2) { [0]=> array(0) { } [1]=> array(0) { } }

模擬ログインを実装したいので、答えを教えてください。ありがとうございます。




ディスカッションへの返信 (解決策)

http リクエストを理解する代わりに、ログインをシミュレートするためにインターネット上でカールを見つけてください

パケットをキャプチャして見てみてはいかがでしょうか?クリアテキストのパスワードを直接使用してログインしますか?

OSC はログインするためのアカウントとパスワードを送信するために sha1 暗号化を使用します



私はあなたにメッセージを書きました。私の表現を無駄にします

<?php$cookie_file = dirname(__FILE__).'/cookie.txt';$rs=login('邮件地址','密码',$cookie_file);if($rs){    $rs=json_decode($rs,true);    exit($rs['msg']);}else{    echo '<span style="color:red;">登陆成功</span>';}echo "<br>";echo "<hr>";echo getIndex($cookie_file);//输出OSC首页function login($user,$pwd,$cookie_file){    $post='email='.urlencode($user).'&pwd='.sha1($pwd).'&verifyCode=&save_login=1';    // 初始化    $curl = curl_init('http://www.oschina.net/action/user/hash_login');    $header = array();    $header[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36';    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);    // 不输出header头信息    curl_setopt($curl, CURLOPT_HEADER, 0);    // 保存到字符串而不是输出    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($curl, CURLOPT_COOKIEJAR,  $cookie_file); //存储cookies    // post数据    curl_setopt($curl, CURLOPT_POST, 1);    // 请求数据    curl_setopt($curl, CURLOPT_POSTFIELDS, $post);    // 是否抓取跳转后的页面    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);    $response = curl_exec($curl);    curl_close($curl);    return $response;}function getIndex($cookie_file){    // 初始化    $curl = curl_init('http://www.oschina.net');    $header = array();    $header[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36';    //$header[] = 'Cookie: tc=AQAAAOaUCR/QXw4AwxXKeMgqcfroqWeb; oscid=PwzzXphS9GBIcX5pQFukpai0W0vxPrG4zeASFKTqkhgqGAHYCQekA%2FptCnh127%2BP5immlCrhkQqiEriCja%2F4ov1i2XHq2D%2BP6Dn8L9pfVydrkxvpObEDaOsIy9RU4DtH';    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);    // 不输出header头信息    curl_setopt($curl, CURLOPT_HEADER, 0);    curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);    // 保存到字符串而不是输出    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);    // 是否抓取跳转后的页面    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);    $response = curl_exec($curl);    curl_close($curl);    return $response;}
ログイン後にコピー

パケットキャプチャデータを処理していたのに、私はそれに注意を払わなかったので、コードを書くのを手伝ってくれたモデレータに感謝します。視聴者は私を感謝し、崇拝しています。 。 。

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