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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 13:26:48875ブラウズ

これは、Web ページのプロンプトに従って PHP シミュレートされたログインのコードに従って変更されたログイン コードであり、オープンソース中国へのシミュレートされたログインです。
5805c710af24b31f1d54e8fd01932f81 '/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 = "/00d0427fa05126f0188ee1811fa9db82(.*)b90dd5946f0946207856a8a37f441edf/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;}

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

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