ホームページ  >  記事  >  バックエンド開発  >  PHPで擬似ログイン機能を実装

PHPで擬似ログイン機能を実装

墨辰丷
墨辰丷オリジナル
2018-05-18 09:21:491512ブラウズ

この記事では主に PHP の模擬ログイン機能を紹介し、curl を使用して PHP で模擬ログインを実現する関連操作スキルを紹介します。必要な方は参考にしてください。

詳細は次のとおりです。

検証コードは考慮しません。 PHPはログインのシミュレーションを実装しており、インターネットで公開されている方法はcurlを使って実装をシミュレートするのが一般的ですが、curlが実装しているのはサーバー側とのセッションを確立することだけであり、ログインをシミュレートし、ログイン後のデータを取得することができます。 、クライアントに Cookie 情報を植えることはできません (少なくとも現時点では、それを行う方法が見つかりません。) 最後に、非表示の iframe を介して実装しました。

1. Curl は、シミュレートされたログイン用のコードを実装します (サーバーとサーバー間のセッションの確立を実装するだけで、実際にはクライアントとサーバー間のセッションは確立しません)


<?php
$cookie_jar = tempnam(&#39;./tmp&#39;,&#39;cookie&#39;);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, &#39;http://192.168.0.22/logincheck.php&#39;);
curl_setopt($ch, CURLOPT_POST, 1);
$request = &#39;UNAME=admin&PASSWORD=123456&#39;;
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, &#39;http://192.168.0.22/general/&#39;);
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 &#39;<pre class="brush:php;toolbar:false">&#39;;
echo strip_tags($orders);
echo &#39;
'; 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はログインを模擬しページコンテンツを取得するcurl利用法

PHPはMSNへのログインを模擬しユーザ情報を取得_PHPチュートリアル



以上がPHPで擬似ログイン機能を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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