PHP CURL之模擬POST登陸

2021-07-05 03:21:20 字數 1550 閱讀 6512

curl簡介:

curl允許你與各種的伺服器使用各種型別的協議進行連線和通訊,目前支援的協議包括:http、https、ftp、gopher、telnet、dict、file、ldap,同時也支援https認證、http post、http put、 ftp 上傳(這個也能通過php的ftp擴充套件完成)、http 基於表單的上傳、**、cookies和使用者名稱+密碼的認證。(摘自手冊)

總之 curl 功能非常強大,能實現很多 file_get_contents 函式所不能實現的功能。

原理性的東西不再贅述,這裡**來說話。

curl模擬登陸:

首先,在你的專案中建立兩個檔案,login.php(提交登陸)、validate.php(驗證),**清單:

login.php

[php]view plain

copy

<?php   

header('content-type:text/html;charset=utf-8');  

$user = 'lee';       //登陸使用者名稱

$pass = '123456';    //登陸密碼

$va_url = 'http://localhost/validate.php';            //驗證的 url 鏈結位址  

$post_fields = "loginname=&loginpass="; //post提交資訊串

$curl = curl_init(); //初始化乙個curl會話,必有

//curl_setopt()函式用於設定 curl 的引數,其功能非常強大,具體看手冊

curl_setopt($curl, curlopt_url, $va_url);      //設定驗證登陸的 url 鏈結

curl_setopt($curl, curlopt_returntransfer, 0); //設定結果儲存在變數中,還是輸出,預設為0(輸出)

curl_setopt($curl, curlopt_post, 1);           //模擬post提交

curl_setopt($curl, curlopt_postfields, $post_fields); //設定post串

$data = curl_exec($curl);  //執行此curl會話,必有

//檢查是否有錯誤

if(curl_errno($curl))   

curl_close($curl);         //關閉會話

validate.php

[php]view plain

copy

<?php   

header('content-type:text/html;charset=utf-8');  

if ($_post['loginname'] == 'lee' && $_post['loginpass'] == '123456')  else   

登陸成功,js 彈出「登陸成功」;登陸失敗,js彈出「登陸失敗」。

php curl模擬post請求提交資料

摘要 最近在做校園圖書館圖書資訊的採集程式,既然是圖書館圖書的採集,肯定有提交搜尋的頁面,無非是post提交,讓我想到了curl模擬提交,首先通過firebug進行抓包查詢下post提交後的格式如下 txtwxlx cn hidwxlx spancnlx 最近在做校園圖書館圖書資訊的採集程式,既然是...

php curl模擬post請求提交資料

最近在做校園圖書館圖書資訊的採集程式,既然是圖書館圖書的採集,肯定有提交搜尋的頁面,無非是post提交,讓我想到了curl模擬提交,首先通過firebug進行抓包查詢下post提交後的格式如下 txtwxlx cn hidwxlx spancnlx txtpy hz txttm d2 f4 c0 d...

php curl 傳送post請求

php curl init函式 resource curl init string url null 初始化乙個新的會話,返回乙個curl控制代碼,供curl setopt curl exec 和curl close 函式使用 boolcurl setopt resource ch int opti...