這篇文章主要介紹了PHP基於curl後台遠端登入正方教務系統的方法,結合實例形式分析了php使用curl及cookie實現遠端登陸的操作技巧,需要的朋友可以參考下
#本文實例講述了PHP基於curl後台遠端登入正方教務系統的方法。分享給大家供大家參考,具體如下:
從去年想這個事情怎麼解決,今年終於算是把他搞清楚了,但驗證碼必須要填。
如果你能像360搶票哪有自動辨識驗證碼,那就沒事了。廢話不多扯了。回歸正題
這裡要用CURL。
設計想法:先登入頁面取得COOKIES,然後拿著cookies找伺服器要驗證碼。最後提供伺服器所需的全部資訊。
(這種思維是完全模擬遊覽器存取頁面,根本區別出來是人還機器)
public function index(){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //填对于的URL就可以了 curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //主要cookie的路径,本保存页面cookie curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //返回结果自动输出 $response = curl_exec($ch); curl_close($ch); }
造訪正方教務系統的首頁,第一取得頁中的HTML,第二是取得cookies。
其他的就想問?取得HTML有啥用?
如果你細心觀察教務系統首頁的HTML的話,你會發現裡面有很多隱藏字段,而這些字段又是變化的。
所以你乾脆把HTML都取得然後解析,然後把需要的字段都桃出來
#HTML結構
看到沒有,那麼的隱藏字段,都是提交資料的必須,而且不能多。
頁面效果
接下來我要將一個最重要的問題,怎麼取得驗證碼?
開始我想直接
<img src="/static/imghwm/default1.png" data-src="xxxx/CheckCode.aspx" class="lazy" / alt="PHP基於curl實作後台遠端登入正方教務系統的方法" >
不就行了?這樣驗證碼雖然是出來,但這個驗證碼不屬於你,所以在你存遠端登入時候,都會告訴你,驗證碼錯誤
那怎麼取得屬於自己的驗證碼呢?這時候,自然想到的是cookies。
伺服器是怎麼區分遊覽器請求是不是同一個人,就看cookies裡面的sessionid了
這樣。你拿著你在首頁取得到的cookies,再找伺服器要你的驗證碼,它會給錯?
public function getImg() { $url = "http://xxxx/CheckCode.aspx"; $filedir = SITE_PATH."/TMP/Cookies"; $cookie_file = $filedir."/cookie.txt"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); // curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, "10"); header("Content-type:image/gif"); //这个视不同图片格式不一样,请注意 echo curl_exec($ch); curl_close($ch); }
然後再在其他頁面呼叫這個方法,你就可以取得到驗證碼。
CURL的PHP請求跟你遊覽器發出的PHP屬於兩個不同的線程,所以,他們的cookies是不同共用的。
這樣你就可以登入了,但不要以為這樣登入了,你可以操作全部功能了,那你就想錯了。還有一個很小的細節。 。
總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。
相關推薦:
PHP四種排序演算法實作及效率分析【冒泡排序,插入排序,選擇排序與快速排序】
#
以上是PHP基於curl實作後台遠端登入正方教務系統的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

curl和Pythonrequests都是发送HTTP请求的强大工具。虽然curl是一种命令行工具,可让您直接从终端发送请求,但Python的请求库提供了一种更具编程性的方式来从Python代码中发送请求。将curl转换为Pythonrequestscurl命令的基本语法如下所示:curl[OPTIONS]URL将curl命令转换为Python请求时,我们需要将选项和URL转换为Python代码。这是一个示例curlPOST命令:curl-XPOSThttps://example.com/api

在Linux下更新curl版本,您可以按照以下步骤进行操作:检查当前curl版本:首先,您需要确定当前系统中安装的curl版本。打开终端,并执行以下命令:curl--version该命令将显示当前curl的版本信息。确认可用的curl版本:在更新curl之前,您需要确定可用的最新版本。您可以访问curl的官方网站(curl.haxx.se)或相关的软件源,查找最新版本的curl。下载curl源代码:使用curl或浏览器,下载您选择的curl版本的源代码文件(通常为.tar.gz或.tar.bz2

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

PHP8.1发布:引入curl多个请求并发处理近日,PHP官方发布了最新版本的PHP8.1,其中引入了一个重要的特性:curl多个请求并发处理。这个新特性为开发者提供了一个更加高效和灵活的方式来处理多个HTTP请求,极大地提升了性能和用户体验。在以往的版本中,处理多个请求往往需要通过创建多个curl资源,并使用循环来分别发送和接收数据。这种方式虽然能够实现目

从头到尾:如何使用php扩展cURL进行HTTP请求引言:在Web开发中,经常需要与第三方API或其他远程服务器进行通信。而使用cURL进行HTTP请求是一种常见而强大的方式。本文将介绍如何使用php扩展cURL来执行HTTP请求,并提供一些实用的代码示例。一、准备工作首先,确保php已安装cURL扩展。可以在命令行执行php-m|grepcurl查

在linux中,curl是一个非常实用的、用来与服务器之间传输数据的工具,是一个利用URL规则在命令行下工作的文件传输工具;它支持文件的上传和下载,是综合传输工具。curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传等等。

PHPCurl中如何处理网页的301重定向?在使用PHPCurl发送网络请求时,时常会遇到网页返回的301状态码,表示页面被永久重定向。为了正确处理这种情况,我们需要在Curl请求中添加一些特定的选项和处理逻辑。下面将详细介绍在PHPCurl中如何处理网页的301重定向,并提供具体的代码示例。301重定向处理原理301重定向是指服务器返回了一个30

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver Mac版
視覺化網頁開發工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。