本文实例讲述了PHP 模拟登陆功能。分享给大家供大家参考,具体如下:
说明:该模拟登陆实例仅适用于没有验证码的模拟登陆实例
该程序基本功能是,模拟登陆高校图书馆网站,并获取读者信息和借书信息。
程序截图:
目录结构:
login.php
<form method=\"post\" class=\"am-form\" action=\"judge.php\"> <label for=\"sid\">学号:</label> <input type=\"text\" name=\"number\" id=\"sid\" value=\"\"> <br> <label for=\"password\">密码:</label> <input type=\"password\" name=\"passwd\" id=\"password\" value=\"\"> <br> <div class=\"am-cf\"> <input type=\"submit\" name=\"\" value=\"登 录\" class=\"am-btn am-btn-primary am-btn-sm am-fl\"> <input type=\"submit\" name=\"\" value=\"忘记密码 ^_^? \" class=\"am-btn am-btn-default am-btn-sm am-fr\"> </div> </form>
judge.php
session_start(); require_once \'curl.php\'; $url = \"http://opac.lib.ustc.edu.cn/reader/redr_info.php\"; $number = $_POST[\'number\']; $passwd = $_POST[\'passwd\']; $res = run_curl($url,$number,$passwd); $pattern = \'/<TD><span class=\\\"bluetext\\\">姓名:<\\/span>(.*)<\\/TD>/\'; preg_match($pattern, $res,$arr1); if(is_array($arr1)){ $_SESSION[\'number\'] = $number; $_SESSION[\'passwd\'] = $passwd; $_SESSION[\'name\'] = $arr1[1]; echo \"<script>window.location.href=\'index.php\';</script>\"; }else{ echo \"<script>history.go(-1);</script>\"; }
curl.php
<?php function run_curl($content_url,$number=\'\',$passwd=\'\'){ $cookie_file = tempnam(\'./temp\',\'cookie\'); $url = \"http://opac.lib.ustc.edu.cn/reader/redr_verify.php\"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); $post_fileds = \"number=$number&passwd=$passwd&select=bar_no\"; curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$post_fileds); curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file); curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file); $content = curl_exec($ch); curl_close($ch); $ch = curl_init($content_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file); curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file); $res = curl_exec($ch); curl_close($ch); return $res; }
index.php
<?php session_start(); $number = $_SESSION[\'number\']; $passwd = $_SESSION[\'passwd\']; $username = $_SESSION[\'name\']; if($number==\'\'||$passwd==\'\'||$username==\'\'){ echo \"<script>window.location.href=\'login.php\';</script>\"; exit(); } require_once \'curl.php\'; header(\'Content-type:text/html;charset=utf-8\'); $url = \"http://opac.lib.ustc.edu.cn/reader/book_lst.php\"; $res = run_curl($url,$number,$passwd); //通过curl抓取数据 $pattern = \'/<td class=\"whitetext\" width=\"35%\"><a class=\"blue\" href=\"(.*)\" rel=\"external nofollow\" >(.*)<\\/a>/\';//正则匹配获得图书信息 preg_match_all($pattern, $res,$book_arr); $booklist = array(); $booklist = $book_arr[2]; //借阅图书列表 //var_dump($booklist); $pattern = \'/<font color=(red|)>(.*)<\\/font>/\';//正则匹配获得还书信息 preg_match_all($pattern, $res,$date_arr); $datelist = array(); $datelist = $date_arr[2]; //应归还日期列表 $taglist = array(); $taglist = $date_arr[1]; //标记是否超期 //var_dump($date_arr); ?>
logout.php
<?php session_start(); $_SESSION = array(); session_destroy(); ?> <script>window.location.href=\'login.php\'</script>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php curl用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》及《PHP中json格式数据操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
© 版权声明
THE END
暂无评论内容