PHP模拟登陆功能如何实现?下面这篇文章主要介绍了PHP 模拟登陆功能,结合实例形式详细分析了php基于curl的模拟表单登陆及session信息存储相关操作技巧,需要的朋友就来一聚教程网参考一下吧!
本文实例讲述了PHP 模拟登陆功能。分享给大家供大家参考,具体如下:
说明:该模拟登陆实例仅适用于没有验证码的模拟登陆实例
该程序基本功能是,模拟登陆高校图书馆网站,并获取读者信息和借书信息。
程序截图:
目录结构:
login.php
学号:judge.php
session_start();
require_once 'curl.php';
$url = "http://opac.li*b.ustc.*ed*u.cn/reader/redr_info.php";
$number = $_POST['number'];
$passwd = $_POST['passwd'];
$res = run_curl($url,$number,$passwd);
$pattern = '/
姓名:(.*)/';
preg_match($pattern, $res,$arr1);
if(is_array($arr1)){
$_SESSION['number'] = $number;
$_SESSION['passwd'] = $passwd;
$_SESSION['name'] = $arr1[1];
echo "";
}else{
echo "";
}
curl.php
<?php function run_curl($content_url,$number='',$passwd=''){
$cookie_file = tempnam('./temp','cookie');
$url = "http://opac.lib.*u*stc.e*du.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 "