登陆;http://192.168.32.161/DEVOPS/index.php/Index/do_login Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection Keep-Alive Content-Encoding gzip Content-Length 23 Content-Type text/html; charset=UTF-8 Date Fri, 23 Sep 2016 14:16:49 GMT Expires Thu, 19 Nov 1981 08:52:00 GMT Keep-Alive timeout=5, max=95 Location /DEVOPS/index.php/Main/index Pragma no-cache Server Apache/2.2.31 (Unix) PHP/5.6.20 Vary Accept-Encoding X-Powered-By PHP/5.6.20 function do_login(){ //获取用户名和密码信息,和数据库中比对 // echo 111111111; // dump($_POST); // dump($_SESSION); $username=$_POST['username']; $password=$_POST['password']; $code=$_POST['code']; if($_SESSION['verify']!==md5($code)){ $this->error('验证码错误'); } $m=new Model('user'); $where['username']=$username; $where['password']=md5($password); $arr = $m->where($where)->find(); $i=$m->where($where)->count(); if ($i>0){ $_SESSION['username']=$username; $_SESSION['authority'] = $arr['authority']; $this->redirect('Main/index'); }else{ $this->error('该用户不存在'); } } 登陆成功后跳转到Main/index页面 http://192.168.32.161/DEVOPS/index.php/Main/index use Net::SMTP; use LWP::UserAgent; use HTTP::Cookies; use HTTP::Headers; use HTTP::Response; use Encode; use Switch; use File::Temp qw/tempfile/; use HTTP::Date qw(time2iso str2time time2iso time2isoz); my $CurrTime = time2iso( time() ); my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; my $now = time(); $ua->agent('Mozilla/5.0'); my $cookie_jar = HTTP::Cookies->new( file => 'lwp_cookies.txt', autosave => 1, ignore_discard => 1 ); $ua->cookie_jar($cookie_jar); my $response = $ua->get("http://192.168.32.161/DEVOPS/index.php/Public/code" ); if ( $response->is_success ) { $r = $response->decoded_content; # print $response->decoded_content; # or whatever } else { die $response->status_line; }; my ( $fh, $filename ) = tempfile( "wj_qrcode_XXXX", SUFFIX => ".jpg", DIR => 'c:\' ); binmode $fh; print $fh $r; close $fh; print "登录二维码已经下载到本地 [ $filename ] "; ##打开图片 system("start $filename "); my $validCode = <STDIN>; chomp $validCode; print "$validCode is $validCode "; my $login_url = 'http://192.168.32.161/DEVOPS/index.php/Index/do_login'; my $res = $ua->post( $login_url, { 'username' => 'admin', 'password' => 'admin', 'code' => "$validCode" } ); print "--------------- "; ##判断响应头里面的location,确定是否登陆成功 my $content = $res->as_string() ; my $content = encode( "gbk", decode( "utf8", "$content" ) ); print "$content is $content "; #获取的是原始内容,包括响应头,响应正文 print $res->header('Location'); 返回; F:>perl php.pl 登录二维码已经下载到本地 [ C:wj_qrcode_kz0X.jpg ] 9017 $validCode is 9017 --------------- $content is HTTP/1.1 302 Found Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection: close Date: Fri, 23 Sep 2016 14:42:17 GMT Pragma: no-cache Location: /DEVOPS/index.php/Main/index Server: Apache/2.2.31 (Unix) PHP/5.6.20 Vary: Accept-Encoding Content-Length: 3 Content-Type: text/html; charset=UTF-8 Expires: Thu, 19 Nov 1981 08:52:00 GMT Client-Date: Fri, 23 Sep 2016 14:45:09 GMT Client-Peer: 192.168.32.161:80 Client-Response-Num: 1 X-Powered-By: PHP/5.6.20 /DEVOPS/index.php/Main/index