PHP 模擬登陸功能實(shí)例詳解
本文實(shí)例講述了PHP 模擬登陸功能。分享給大家供大家參考,具體如下:
說明:該模擬登陸實(shí)例僅適用于沒有驗(yàn)證碼的模擬登陸實(shí)例
該程序基本功能是,模擬登陸高校圖書館網(wǎng)站,并獲取讀者信息和借書信息。
程序截圖:


目錄結(jié)構(gòu):

login.php
<form method="post" class="am-form" action="judge.php">
<label for="sid">學(xué)號:</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抓取數(shù)據(jù)
$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]; //應(yīng)歸還日期列表
$taglist = array();
$taglist = $date_arr[1]; //標(biāo)記是否超期
//var_dump($date_arr);
?>
logout.php
<?php session_start(); $_SESSION = array(); session_destroy(); ?> <script>window.location.href='login.php'</script>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php curl用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》及《PHP中json格式數(shù)據(jù)操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
- php實(shí)現(xiàn)模擬登陸方正教務(wù)系統(tǒng)抓取課表
- PHP函數(shù)分享之curl方式取得數(shù)據(jù)、模擬登陸、POST數(shù)據(jù)
- PHP實(shí)現(xiàn)微信模擬登陸并給用戶發(fā)送消息的方法【文字,圖片,圖文】
- php模擬登陸的實(shí)現(xiàn)方法分析
- php中通過curl模擬登陸discuz論壇的實(shí)現(xiàn)代碼
- php 論壇采集程序 模擬登陸,抓取頁面 實(shí)現(xiàn)代碼
- PHP簡單實(shí)現(xiàn)模擬登陸功能示例
- php實(shí)現(xiàn)微信模擬登陸、獲取用戶列表及群發(fā)消息功能示例
- PHP 模擬登陸MSN并獲得用戶信息
- php通過curl模擬登陸DZ論壇
- PHP模擬登陸163郵箱發(fā)郵件及獲取通訊錄列表的方法
相關(guān)文章
php中g(shù)et_object_vars()在數(shù)組的實(shí)例用法
在本篇文章小編給大家整理的是一篇關(guān)于php中g(shù)et_object_vars()在數(shù)組的實(shí)例用法,對此有興趣的朋友們可以學(xué)習(xí)下。2021-02-02
PHP 向右側(cè)拉菜單實(shí)現(xiàn)代碼,測試使用中
PHP 向右側(cè)拉菜單實(shí)現(xiàn)代碼,測試使用中,需要的朋友可以測試下。2009-11-11
解決file_get_contents無法請求https連接的方法
PHP.ini默認(rèn)配置下,用file_get_contents讀取https的鏈接,就會報(bào)如下錯(cuò)誤,本文給出解決方法2013-12-12
淺析Mysql 數(shù)據(jù)回滾錯(cuò)誤的解決方法
以下小編為大家介紹一下關(guān)于Mysql數(shù)據(jù)回滾錯(cuò)誤的解決方法。需要的朋友可以過來參考下2013-08-08
PHP設(shè)計(jì)模式之模板方法模式實(shí)例淺析
這篇文章主要介紹了PHP設(shè)計(jì)模式之模板方法模式,結(jié)合實(shí)例形式簡單分析了php設(shè)計(jì)模式中模板方法模式的概念、原理、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-12-12
PHP實(shí)現(xiàn)漢字轉(zhuǎn)拼音類庫的使用方法
這篇文章主要為大家介紹了PHP實(shí)現(xiàn)漢字轉(zhuǎn)拼音類庫使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06

