php模拟登陆163邮箱失败,求解
<?phpfunction curl($url,$cookiefile=0,$cookiejar=0,$httpheader=0,$referer="http://baidu.com",$follow=0,$header=1,$postdata=0,$cookiearr=ARRAY(),$proxy=0,$outtime=20000,$UA=0){ $ch = curl_init(); curl_setopt ( $ch, CURLOPT_NOSIGNAL,true);//开启毫秒超时 curl_setopt($ch, CURLOPT_TIMEOUT_MS, $outtime);//10s超时 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_URL,$url) ; if($UA==0){ curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36'); }else{ curl_setopt($ch, CURLOPT_USERAGENT,$UA); } curl_setopt($ch, CURLOPT_REFERER, $referer); //伪装REFERER curl_setopt($ch, CURLOPT_HEADER, $header); if($httpheader){ curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ( $ch, CURLOPT_COOKIESESSION, true ); if($follow){ curl_setopt($ch, CURLOPT_FOLLOWLOCATION,$follow);//跟随重定向 } //读取cookie //foreach($cookiearr as $c){ //echo $c; // curl_setopt($ch,CURLOPT_COOKIE,$cookiearr[0]); //} if($cookiefile){ curl_setopt($ch, CURLOPT_COOKIEFILE,$cookiefile); } if($postdata){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); }else{ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); } curl_setopt($ch, CURLINFO_HEADER_OUT, true);//开启返回请求头查看 //保存cookie if($cookiejar){ curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar); } //代理 if($proxy){ curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC); //代理认证模式 curl_setopt($ch, CURLOPT_PROXY, $proxy['ip']); //代理服务器地址 curl_setopt($ch, CURLOPT_PROXYPORT,$proxy['port']); //代理服务器端口 curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); //使用http代理模式 } $content=curl_exec($ch); if($content === false){ $content= 'Curl error: ' . curl_error($ch); } $info=curl_getinfo($ch); $result[1]=$content; $result[0]=$info; curl_close($ch); return $result;}//首次访问mail.163.com没有产生任何cookie/$url="https://mail.163.com/entry/cgi/ntesdoor?df=mail163_letter&from=web&funcid=loginone&iframe=1&language=-1&passtype=1&product=mail163&net=t&style=-1&race=468_528_417_gz&uid=qianxi770231@163.com";//貌似race参数是记录来源 $httpheader = array( 'Cookie: starttime=1454514129882; logType=; nts_mail_user=qianxi770231:-1:1; df=mail163_letter', );//貌似starttime就是js里面的gettiem();//$postdata['savelogin']=1;$postdata['url2']="http://mail.163.com/errorpage/error163.htm";$postdata['username']="qianxi770231";//这邮箱可以使用$postdata['password']="ziyanpuye";$cookie ="cookie.txt";$content= curl($url,0,$cookie,$httpheader,"http://mail.163.com/",0,1,$postdata);print_r($content);// echo $content[1]; $fp = @fopen("Log.html", "w"); //记录捕获到的页面源码fwrite($fp,$content[1]); fclose($fp);
//目前本人技术只能做到这里,,无法模拟成功登陆,
//上面的邮箱可以使用,,求好心人帮忙解决。。
回复讨论(解决方案)
参考:
<?php header("Content-Type: text/html; charset=UTF-8"); error_reporting(0); /** * 登陆 * $user 163用户名 * $pass 密码 **/ function login($user,$pass){ //登陆 $url = 'http://reg.163.com/logins.jsp?type=1&url=http://entry.mail.163.com/coremail/fcg/ntesdoor2?lightweight%3D1%26verifycookie%3D1%26language%3D-1%26style%3D-1'; $cookie = tempnam('./cache/','~');//创建一个用于存放cookie信息的临时文件 $fields_post = array( 'username' => $user, 'password' => $pass, 'verifycookie' => 1, 'style' => -1, 'product' => 'mail163', 'selType' => -1, 'secure' => 'on' ); $fields_string = ''; foreach($fields_post as $key => $value){ $fields_string .= $key . '=' . $value . '&'; } $fields_string = rtrim($fields_string , '&'); $headers = array( 'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0', 'Referer' => 'http://www.163.com' ); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//返回结果存放在变量中,而不是默认的直接输出 curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);//关闭连接时,将服务器端返回的cookie保存在以下文件中 curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); $result= curl_exec($ch); curl_close($ch); preg_match_all('/<div class="info" id="eHint">(.*?) <\/div>/i', $result,$infos,PREG_SET_ORDER); if(!empty($infos['0']['1'])){ unlink($cookie); exit('<script type="text/javascript">alert("'.$infos['0']['1'].'");history.go(-1);</script>'); }else{ $G_ROOT = dirname(__FILE__); file_put_contents($G_ROOT.'/cache/cookie', $cookie); return $cookie; } } /** * * $data['url'] 请求地址 * $data['data_post'] post数据 * $data['cookie'] * **/ function curl($data){ $url = $data['url']; $data_post= $data['data_post']? $data['data_post']: false; $cookie = $data['cookie']; $headers = array( 'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0', 'Referer' => 'http://www.163.com' ); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //cookie文件 登陆之后 //POST 提交 if($data_post){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_post); } $result = curl_exec($ch); curl_close($ch); return $result; }

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Bagaimana untuk menulis algoritma untuk mencari gandaan sepunya paling kurang dalam Python? Gandaan sepunya terkecil ialah integer terkecil antara dua nombor yang boleh membahagi dua nombor. Dalam matematik, menyelesaikan gandaan sepunya terkecil ialah tugas matematik asas, dan dalam pengaturcaraan komputer, kita boleh menggunakan Python untuk menulis algoritma untuk menyelesaikan gandaan sepunya terkecil. Berikut akan memperkenalkan algoritma berbilang asas yang paling tidak sepunya dan memberikan contoh kod khusus. Takrif matematik bagi gandaan sepunya terkecil ialah: Jika a boleh dibahagi dengan n dan b boleh dibahagi dengan n, maka n ialah gandaan sepunya terkecil a dan b. Untuk menyelesaikan minimum

Numpy ialah perpustakaan pengkomputeran saintifik yang terkenal dalam Python, yang menyediakan fungsi yang kaya dan kaedah pengkomputeran yang cekap untuk memproses tatasusunan dan matriks berbilang dimensi yang besar. Dalam dunia sains data dan pembelajaran mesin, penyongsangan matriks adalah tugas biasa. Dalam artikel ini, saya akan memperkenalkan cara cepat menyelesaikan songsang matriks menggunakan perpustakaan Numpy dan memberikan contoh kod khusus. Mula-mula, mari kita perkenalkan perpustakaan Numpy ke dalam persekitaran Python kita dengan memasangnya. Numpy boleh dipasang di terminal menggunakan arahan berikut: pipinsta

Tajuk: Gunakan pengaturcaraan bahasa C untuk melaksanakan penyelesaian pembahagi sepunya terhebat Pembahagi sepunya terbesar (pendek kata GCD) merujuk kepada integer positif terbesar yang boleh membahagi dua atau lebih integer pada masa yang sama. Penyelesaian untuk pembahagi sepunya yang paling hebat boleh sangat membantu untuk beberapa algoritma dan penyelesaian masalah. Dalam artikel ini, fungsi mencari pembahagi sepunya terbesar akan dilaksanakan melalui pengaturcaraan bahasa C, dan contoh kod khusus akan disediakan. Dalam bahasa C, anda boleh menggunakan Algoritma Euclidean untuk menyelesaikan maksimum

Bagaimana untuk menggunakan Python untuk melaksanakan algoritma untuk menyelesaikan faktorial? Faktorial adalah konsep penting dalam matematik Ia merujuk kepada nombor yang didarab dengan sendirinya tolak satu, kemudian didarab dengan sendirinya tolak satu, dan seterusnya sehingga ia didarab kepada 1. Faktorial biasanya diwakili oleh simbol "!" Sebagai contoh, faktorial 5 dinyatakan sebagai 5!, dan formula pengiraan ialah: 5!=5×4×3×2×1=120. Dalam Python, kita boleh menggunakan gelung untuk melaksanakan algoritma faktorial mudah. Kod sampel diberikan di bawah: deffacto

Untuk mengetahui cara mencari pembahagi sepunya terbesar dalam bahasa C, anda memerlukan contoh kod khusus Pembahagi sepunya terhebat (pendek kata GCD) merujuk kepada integer positif terbesar antara dua atau lebih integer yang boleh membahagikannya. Penyebut sepunya terbesar sering digunakan dalam pengaturcaraan komputer, terutamanya apabila berurusan dengan pecahan, memudahkan pecahan, dan menyelesaikan masalah seperti nisbah integer termudah. Artikel ini akan memperkenalkan cara menggunakan bahasa C untuk mencari pembahagi sepunya yang paling hebat dan memberikan contoh kod khusus. Terdapat banyak cara untuk menyelesaikan pembahagi sepunya terbesar, seperti Euclidean

Tajuk: Bagaimana untuk menyelesaikan kuasa 2 dalam PHP? Contoh kod khusus dikongsi dalam pengaturcaraan PHP Penyelesaian kuasa nombor adalah keperluan biasa, terutamanya dalam beberapa algoritma dan pengiraan matematik. Artikel ini akan membincangkan secara terperinci cara menyelesaikan kuasa 2 dalam PHP dan memberikan contoh kod khusus untuk rujukan anda. Dalam PHP, anda boleh menggunakan operator eksponen ** untuk mengira kuasa. Untuk kuasa 2, hitung $2^n$, dengan $n$ ialah eksponen kuasa. Di bawah ini kami akan melaksanakan pengiraan ini dalam beberapa cara yang berbeza. Kaedah 1: Gunakan ** nasib

Jujukan Fibonacci ialah jujukan nombor di mana sebutan seterusnya ialah hasil tambah dua sebutan sebelumnya. Dua sebutan pertama bagi jujukan Fibonacci ialah 0 diikuti dengan 1. Dalam soalan ini, kita akan mencari nombor ke-n dalam jujukan Fibonacci. Untuk melakukan ini, kami akan mengira semua nombor dan mencetak n item. Input:8Output:011235813 Penerangan 0+1=11+1=21+2=32+3=5 Gunakan gelung For untuk menjumlahkan dua item pertama sebagai item seterusnya Contoh #include<iostream>usingnamespacestd;intmain(){ intt1 = 0,t2=1,n,i,penggal seterusnya;&am

Di sini kita akan melihat masalah menarik berkaitan persamaan modular. Katakan kita mempunyai dua nilai A dan B. Kita mesti mencari bilangan nilai yang mungkin yang boleh diambil oleh pembolehubah X sedemikian rupa sehingga (AmodX)=B dipegang. Katakan A ialah 26 dan B ialah 2. Jadi nilai pilihan X ialah {3,4,6,8,12,24}, maka kiraan 6. Ini jawapannya. Mari kita lihat algoritma untuk memahami dengan lebih baik. Algoritma mungkinWayCount(a,b)−mulakan ifa=b,maka penyelesaian tidak terhingga jika
