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="(.*)">(.*)<\/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>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值