ホームページ >バックエンド開発 >PHPチュートリアル >PHP はシミュレートされたログインを実装します

PHP はシミュレートされたログインを実装します

WBOY
WBOYオリジナル
2016-06-23 13:42:58754ブラウズ

PHP は検証コードを考慮せずに、curl を使用して実装をシミュレートするのが一般的ですが、curl はログインをシミュレートして取得することしかできません。データの場合、Cookie 情報はクライアントに埋め込むことができません (少なくとも、これを見つける方法は今のところ見つかりません)。最終的には、非表示の iframe を使用してこれを実現しました。

1. Curl は、シミュレートされたログイン用のコードを実装します (サーバーとサーバー間のセッションの確立を実装するだけですが、実際にはクライアントとサーバー間のセッションは確立しません)。非表示の iframe を介したクライアントとサーバー (特定のセキュリティ リスクをもたらす可能性があります)

<?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); ?> ceshi1.php


<html><title></title><body><?$goURL="http://<span style="font-family: Arial, Helvetica, sans-serif;">192.168.0.22</span><span style="font-family: Arial, Helvetica, sans-serif;">/general/email/";</span>?><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>


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。