PHP 模拟登陆功能实例详解
网络编程 2021-07-04 23:05www.168986.cn编程入门
这篇文章主要介绍了PHP 模拟登陆功能,结合实例形式详细分析了php基于curl的模拟表单登陆及session信息存储相关操作技巧,需要的朋友可以参考下
本文实例讲述了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./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./reader/redr_verify.php"; $ch = curl_init($url); curl_set($ch, CURLOPT_HEADER, 0); curl_set($ch, CURLOPT_RETURNTRANSFER, 1); curl_set($ch,CURLOPT_FOLLOWLOCATION,1); $post_fileds = "number=$number&passwd=$passwd&select=bar_no"; curl_set($ch,CURLOPT_POST,1); curl_set($ch,CURLOPT_POSTFIELDS,$post_fileds); curl_set($ch,CURLOPT_COOKIEFILE,$cookie_file); curl_set($ch,CURLOPT_COOKIEJAR,$cookie_file); $content = curl_exec($ch); curl_close($ch); $ch = curl_init($content_url); curl_set($ch, CURLOPT_HEADER, 0); curl_set($ch, CURLOPT_RETURNTRANSFER, 1); curl_set($ch,CURLOPT_FOLLOWLOCATION,1); curl_set($ch,CURLOPT_COOKIEFILE,$cookie_file); curl_set($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./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程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程