這篇文章主要介紹了PHP實現模擬登陸功能,涉及php使用curl實現模擬登陸的相關操作技巧,需要的朋友可以參考下
具體如下:
#在不考慮驗證碼的情況一下,php實現模擬登陸,網上給的辦法一般是採用curl來模擬實現,但是curl實現的是伺服器端與伺服器端建立了會話,只能模擬登陸之後獲取登陸之後的數據,無法將cookie資訊種植到客戶端(至少目前本人查找沒有找到辦法)最後自己透過隱藏的iframe來實現。
1、curl實作模擬登陸的程式碼,(只是實作伺服器與伺服器建立會話,其實並沒有在客戶端與伺服器之間建立會話)
<?php $cookie_jar = tempnam('./tmp','cookie'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://192.168.0.22/logincheck.php'); curl_setopt($ch, CURLOPT_POST, 1); $request = 'UNAME=admin&PASSWORD=123456'; curl_setopt($ch, CURLOPT_POSTFIELDS, $request); //把返回来的cookie信息保存在$cookie_jar文件中 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); //设定返回的数据是否自动显示 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设定是否显示头信息 curl_setopt($ch, CURLOPT_HEADER, false); //设定是否输出页面内容 curl_setopt($ch, CURLOPT_NOBODY, false); curl_exec($ch); curl_close($ch); //get data after login $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_URL, 'http://192.168.0.22/general/'); curl_setopt($ch2, CURLOPT_HEADER, false); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar); $orders = curl_exec($ch2); echo $orders; exit; echo '<pre class="brush:php;toolbar:false">'; echo strip_tags($orders); echo ''; curl_close($ch2); ?>
2、透過隱藏的iframe實現客戶端與伺服器端的通訊(肯能帶來一定的安全隱患)
<html> <title></title> <body> <? $goURL="http://192.168.0.22/general/email/"; ?> <iframe name="hiddenLoginFrame" onload="get_pass()" src="ceshi1.php" id="hiddenLoginFrame" width=0 height=0 frameborder=0 scrolling=no style="display:none;"> </iframe> <script Language="JavaScript"> function get_pass() { window.open("<?=$goURL ?>"); window.close(); } </script> </body> </html>
ceshi1.php
<html> <head> <title>ceshi</title> </head> <body onload="get_pass1();"> <form name="form1" method="post" target="hiddenLoginFrame" action="http://192.168.0.22/logincheck.php"> <input type="text" value="admin" name="UNAME"> <input type="text" value="123456" name="PASSWORD"> </form> </body> <script Language="JavaScript"> function get_pass1() { //document.form1.action=u_url; document.form1.submit(); } </script> </html>
###################################
以上是PHP實現模擬登陸功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!