太原椰千语 發表於 2020-8-27 10:46:00

Navicat 使用HTTP代理连接mysql ntunnel_mysql.php

<p>使用Navicat工具调试mysql数据库很方便,因为老的http连接mysql的代码仅支持 mysql_connect,但新的PHP已经不支持此函数了。<br>在网上找的新方法,使用 mysqli_connect 替代。</p>
<p>1. 将 ntunnel_mysql.php 放网站可访问目录<br>2. 使用浏览器测试访问 http://www.z1.com/ntunnel_mysql.php<br>3. 配置Navicat使用http连接mysql,如下图:</p>
<p><img src="https://img2020.cnblogs.com/blog/50603/202008/50603-20200827104511519-1560693267.png" width="383" height="435" loading="lazy" style="border: 1px solid rgba(0, 0, 255, 1)"></p>
<p>ntunnel_mysql.php 代码如下:</p>
<div class="cnblogs_code">
<pre>&lt;?php    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">version my202</span>

<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ zjfree 使用mysqli代理Navicat</span>
<span style="color: rgba(0, 0, 255, 1)">const</span> USER_ACCOUNT = 'admin'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">const</span> USER_PASSWORD = '111111'<span style="color: rgba(0, 0, 0, 1)">;

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 检测用户授权</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> check()
{
    </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 0, 255, 1)">isset</span>(<span style="color: rgba(128, 0, 128, 1)">$_SERVER</span>['PHP_AUTH_USER'<span style="color: rgba(0, 0, 0, 1)">])) {
      </span><span style="color: rgba(0, 128, 128, 1)">header</span>('WWW-Authenticate: Basic realm="My Realm"'<span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 128, 128, 1)">header</span>('HTTP/1.0 401 Unauthorized'<span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">             echo 'Text to send if user hits Cancel button';</span>
      <span style="color: rgba(0, 0, 255, 1)">exit</span><span style="color: rgba(0, 0, 0, 1)">;
    }

    </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!(<span style="color: rgba(128, 0, 128, 1)">$_SERVER</span>['PHP_AUTH_USER'] == USER_ACCOUNT &amp;&amp;<span style="color: rgba(128, 0, 128, 1)">$_SERVER</span>['PHP_AUTH_PW'] ==<span style="color: rgba(0, 0, 0, 1)"> USER_PASSWORD)) {
      </span><span style="color: rgba(0, 0, 255, 1)">exit</span><span style="color: rgba(0, 0, 0, 1)">;
    }
}

check();

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">set allowTestMenu to false to disable System/Server test page</span>
<span style="color: rgba(128, 0, 128, 1)">$allowTestMenu</span> = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;

</span><span style="color: rgba(128, 0, 128, 1)">$use_mysqli</span> = <span style="color: rgba(0, 128, 128, 1)">function_exists</span>("mysqli_connect"<span style="color: rgba(0, 0, 0, 1)">);

</span><span style="color: rgba(0, 128, 128, 1)">header</span>("Content-Type: text/plain; charset=x-user-defined"<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">error_reporting</span>(0<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">set_time_limit</span>(0<span style="color: rgba(0, 0, 0, 1)">);

</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> phpversion_int()
{
    </span><span style="color: rgba(0, 0, 255, 1)">list</span>(<span style="color: rgba(128, 0, 128, 1)">$maVer</span>, <span style="color: rgba(128, 0, 128, 1)">$miVer</span>, <span style="color: rgba(128, 0, 128, 1)">$edVer</span>) = <span style="color: rgba(0, 128, 128, 1)">preg_split</span>("(/|\.|-)", <span style="color: rgba(0, 128, 128, 1)">phpversion</span><span style="color: rgba(0, 0, 0, 1)">());
    </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">$maVer</span> * 10000 + <span style="color: rgba(128, 0, 128, 1)">$miVer</span> * 100 + <span style="color: rgba(128, 0, 128, 1)">$edVer</span><span style="color: rgba(0, 0, 0, 1)">;
}

</span><span style="color: rgba(0, 0, 255, 1)">if</span> (phpversion_int() &lt; 50300<span style="color: rgba(0, 0, 0, 1)">) {
    </span><span style="color: rgba(0, 128, 128, 1)">set_magic_quotes_runtime</span>(0<span style="color: rgba(0, 0, 0, 1)">);
}

</span><span style="color: rgba(0, 0, 255, 1)">function</span> GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$num</span><span style="color: rgba(0, 0, 0, 1)">)
{
    </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 128, 128, 1)">pack</span>("N", <span style="color: rgba(128, 0, 128, 1)">$num</span><span style="color: rgba(0, 0, 0, 1)">);
}

</span><span style="color: rgba(0, 0, 255, 1)">function</span> GetShortBinary(<span style="color: rgba(128, 0, 128, 1)">$num</span><span style="color: rgba(0, 0, 0, 1)">)
{
    </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 128, 128, 1)">pack</span>("n", <span style="color: rgba(128, 0, 128, 1)">$num</span><span style="color: rgba(0, 0, 0, 1)">);
}

</span><span style="color: rgba(0, 0, 255, 1)">function</span> GetDummy(<span style="color: rgba(128, 0, 128, 1)">$count</span><span style="color: rgba(0, 0, 0, 1)">)
{
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> = ""<span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(128, 0, 128, 1)">$i</span> = 0; <span style="color: rgba(128, 0, 128, 1)">$i</span> &lt; <span style="color: rgba(128, 0, 128, 1)">$count</span>; <span style="color: rgba(128, 0, 128, 1)">$i</span>++<span style="color: rgba(0, 0, 0, 1)">)
      </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= "\x00"<span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">$str</span><span style="color: rgba(0, 0, 0, 1)">;
}

</span><span style="color: rgba(0, 0, 255, 1)">function</span> GetBlock(<span style="color: rgba(128, 0, 128, 1)">$val</span><span style="color: rgba(0, 0, 0, 1)">)
{
    </span><span style="color: rgba(128, 0, 128, 1)">$len</span> = <span style="color: rgba(0, 128, 128, 1)">strlen</span>(<span style="color: rgba(128, 0, 128, 1)">$val</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$len</span> &lt; 254<span style="color: rgba(0, 0, 0, 1)">)
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 128, 128, 1)">chr</span>(<span style="color: rgba(128, 0, 128, 1)">$len</span>) . <span style="color: rgba(128, 0, 128, 1)">$val</span><span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">else</span>
      <span style="color: rgba(0, 0, 255, 1)">return</span> "\xFE" . GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$len</span>) . <span style="color: rgba(128, 0, 128, 1)">$val</span><span style="color: rgba(0, 0, 0, 1)">;
}

</span><span style="color: rgba(0, 0, 255, 1)">function</span> EchoHeader(<span style="color: rgba(128, 0, 128, 1)">$errno</span><span style="color: rgba(0, 0, 0, 1)">)
{
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> = GetLongBinary(1111<span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetShortBinary(202<span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$errno</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetDummy(6<span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 128, 1)">$str</span><span style="color: rgba(0, 0, 0, 1)">;
}

</span><span style="color: rgba(0, 0, 255, 1)">function</span> EchoConnInfo(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">)
{
    </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$GLOBALS</span>['use_mysqli'<span style="color: rgba(0, 0, 0, 1)">]) {
      </span><span style="color: rgba(128, 0, 128, 1)">$str</span> = GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysqli_get_host_info</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">));
      </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysqli_get_proto_info</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">));
      </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysqli_get_server_info</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">));
      </span><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 128, 1)">$str</span><span style="color: rgba(0, 0, 0, 1)">;
    } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
      </span><span style="color: rgba(128, 0, 128, 1)">$str</span> = GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysql_get_host_info</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">));
      </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysql_get_proto_info</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">));
      </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysql_get_server_info</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">));
      </span><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 128, 1)">$str</span><span style="color: rgba(0, 0, 0, 1)">;
    }
}

</span><span style="color: rgba(0, 0, 255, 1)">function</span> EchoResultSetHeader(<span style="color: rgba(128, 0, 128, 1)">$errno</span>, <span style="color: rgba(128, 0, 128, 1)">$affectrows</span>, <span style="color: rgba(128, 0, 128, 1)">$insertid</span>, <span style="color: rgba(128, 0, 128, 1)">$numfields</span>, <span style="color: rgba(128, 0, 128, 1)">$numrows</span><span style="color: rgba(0, 0, 0, 1)">)
{
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> = GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$errno</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$affectrows</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$insertid</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$numfields</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$numrows</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetDummy(12<span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 128, 1)">$str</span><span style="color: rgba(0, 0, 0, 1)">;
}

</span><span style="color: rgba(0, 0, 255, 1)">function</span> EchoFieldsHeader(<span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$numfields</span><span style="color: rgba(0, 0, 0, 1)">)
{
    </span><span style="color: rgba(128, 0, 128, 1)">$str</span> = ""<span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(128, 0, 128, 1)">$i</span> = 0; <span style="color: rgba(128, 0, 128, 1)">$i</span> &lt; <span style="color: rgba(128, 0, 128, 1)">$numfields</span>; <span style="color: rgba(128, 0, 128, 1)">$i</span>++<span style="color: rgba(0, 0, 0, 1)">) {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$GLOBALS</span>['use_mysqli'<span style="color: rgba(0, 0, 0, 1)">]) {
            </span><span style="color: rgba(128, 0, 128, 1)">$finfo</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_fetch_field_direct</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$i</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetBlock(<span style="color: rgba(128, 0, 128, 1)">$finfo</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">name);
            </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetBlock(<span style="color: rgba(128, 0, 128, 1)">$finfo</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">table);

            </span><span style="color: rgba(128, 0, 128, 1)">$type</span> = <span style="color: rgba(128, 0, 128, 1)">$finfo</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">type;
            </span><span style="color: rgba(128, 0, 128, 1)">$length</span> = <span style="color: rgba(128, 0, 128, 1)">$finfo</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">length;

            </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$type</span><span style="color: rgba(0, 0, 0, 1)">);

            </span><span style="color: rgba(128, 0, 128, 1)">$intflag</span> = <span style="color: rgba(128, 0, 128, 1)">$finfo</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">flags;
            </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$intflag</span><span style="color: rgba(0, 0, 0, 1)">);

            </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$length</span><span style="color: rgba(0, 0, 0, 1)">);
      } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
            </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysql_field_name</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$i</span><span style="color: rgba(0, 0, 0, 1)">));
            </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysql_field_table</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$i</span><span style="color: rgba(0, 0, 0, 1)">));

            </span><span style="color: rgba(128, 0, 128, 1)">$type</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_field_type</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$i</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(128, 0, 128, 1)">$length</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_field_len</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$i</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(0, 0, 255, 1)">switch</span> (<span style="color: rgba(128, 0, 128, 1)">$type</span><span style="color: rgba(0, 0, 0, 1)">) {
                </span><span style="color: rgba(0, 0, 255, 1)">case</span> "int":
                  <span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$length</span> &gt; 11) <span style="color: rgba(128, 0, 128, 1)">$type</span> = 8<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(128, 0, 128, 1)">$type</span> = 3<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">case</span> "real":
                  <span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$length</span> == 12) <span style="color: rgba(128, 0, 128, 1)">$type</span> = 4<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">elseif</span> (<span style="color: rgba(128, 0, 128, 1)">$length</span> == 22) <span style="color: rgba(128, 0, 128, 1)">$type</span> = 5<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(128, 0, 128, 1)">$type</span> = 0<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">case</span> "null":
                  <span style="color: rgba(128, 0, 128, 1)">$type</span> = 6<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">case</span> "timestamp":
                  <span style="color: rgba(128, 0, 128, 1)">$type</span> = 7<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">case</span> "date":
                  <span style="color: rgba(128, 0, 128, 1)">$type</span> = 10<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">case</span> "time":
                  <span style="color: rgba(128, 0, 128, 1)">$type</span> = 11<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">case</span> "datetime":
                  <span style="color: rgba(128, 0, 128, 1)">$type</span> = 12<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">case</span> "year":
                  <span style="color: rgba(128, 0, 128, 1)">$type</span> = 13<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">case</span> "blob":
                  <span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$length</span> &gt; 16777215) <span style="color: rgba(128, 0, 128, 1)">$type</span> = 251<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">elseif</span> (<span style="color: rgba(128, 0, 128, 1)">$length</span> &gt; 65535) <span style="color: rgba(128, 0, 128, 1)">$type</span> = 250<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">elseif</span> (<span style="color: rgba(128, 0, 128, 1)">$length</span> &gt; 255) <span style="color: rgba(128, 0, 128, 1)">$type</span> = 252<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(128, 0, 128, 1)">$type</span> = 249<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">default</span>:
                  <span style="color: rgba(128, 0, 128, 1)">$type</span> = 253<span style="color: rgba(0, 0, 0, 1)">;
            }
            </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$type</span><span style="color: rgba(0, 0, 0, 1)">);

            </span><span style="color: rgba(128, 0, 128, 1)">$flags</span> = <span style="color: rgba(0, 128, 128, 1)">explode</span>(" ", <span style="color: rgba(0, 128, 128, 1)">mysql_field_flags</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$i</span><span style="color: rgba(0, 0, 0, 1)">));
            </span><span style="color: rgba(128, 0, 128, 1)">$intflag</span> = 0<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("not_null", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 1<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("primary_key", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 2<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("unique_key", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 4<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("multiple_key", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 8<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("blob", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 16<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("unsigned", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 32<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("zerofill", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 64<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("binary", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 128<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("enum", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 256<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("auto_increment", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 512<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("timestamp", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 1024<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("set", <span style="color: rgba(128, 0, 128, 1)">$flags</span>)) <span style="color: rgba(128, 0, 128, 1)">$intflag</span> += 2048<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$intflag</span><span style="color: rgba(0, 0, 0, 1)">);

            </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetLongBinary(<span style="color: rgba(128, 0, 128, 1)">$length</span><span style="color: rgba(0, 0, 0, 1)">);
      }
    }
    </span><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 128, 1)">$str</span><span style="color: rgba(0, 0, 0, 1)">;
}

</span><span style="color: rgba(0, 0, 255, 1)">function</span> EchoData(<span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$numfields</span>, <span style="color: rgba(128, 0, 128, 1)">$numrows</span><span style="color: rgba(0, 0, 0, 1)">)
{
    </span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(128, 0, 128, 1)">$i</span> = 0; <span style="color: rgba(128, 0, 128, 1)">$i</span> &lt; <span style="color: rgba(128, 0, 128, 1)">$numrows</span>; <span style="color: rgba(128, 0, 128, 1)">$i</span>++<span style="color: rgba(0, 0, 0, 1)">) {
      </span><span style="color: rgba(128, 0, 128, 1)">$str</span> = ""<span style="color: rgba(0, 0, 0, 1)">;
      </span><span style="color: rgba(128, 0, 128, 1)">$row</span> = <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$GLOBALS</span>['use_mysqli'<span style="color: rgba(0, 0, 0, 1)">])
            </span><span style="color: rgba(128, 0, 128, 1)">$row</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_fetch_row</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">else</span>
            <span style="color: rgba(128, 0, 128, 1)">$row</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_fetch_row</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(128, 0, 128, 1)">$j</span> = 0; <span style="color: rgba(128, 0, 128, 1)">$j</span> &lt; <span style="color: rgba(128, 0, 128, 1)">$numfields</span>; <span style="color: rgba(128, 0, 128, 1)">$j</span>++<span style="color: rgba(0, 0, 0, 1)">) {
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">is_null</span>(<span style="color: rgba(128, 0, 128, 1)">$row</span>[<span style="color: rgba(128, 0, 128, 1)">$j</span><span style="color: rgba(0, 0, 0, 1)">]))
                </span><span style="color: rgba(128, 0, 128, 1)">$str</span> .= "\xFF"<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">else</span>
                <span style="color: rgba(128, 0, 128, 1)">$str</span> .= GetBlock(<span style="color: rgba(128, 0, 128, 1)">$row</span>[<span style="color: rgba(128, 0, 128, 1)">$j</span><span style="color: rgba(0, 0, 0, 1)">]);
      }
      </span><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 128, 1)">$str</span><span style="color: rgba(0, 0, 0, 1)">;
    }
}


</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> doSystemTest()
{
    </span><span style="color: rgba(0, 0, 255, 1)">function</span> output(<span style="color: rgba(128, 0, 128, 1)">$description</span>, <span style="color: rgba(128, 0, 128, 1)">$succ</span>, <span style="color: rgba(128, 0, 128, 1)">$resStr</span><span style="color: rgba(0, 0, 0, 1)">)
    {
      </span><span style="color: rgba(0, 0, 255, 1)">echo</span> "&lt;tr&gt;&lt;td class=\"TestDesc\"&gt;<span style="color: rgba(128, 0, 128, 1)">$description</span>&lt;/td&gt;&lt;td "<span style="color: rgba(0, 0, 0, 1)">;
      </span><span style="color: rgba(0, 0, 255, 1)">echo</span> (<span style="color: rgba(128, 0, 128, 1)">$succ</span>) ? "class=\"TestSucc\"&gt;<span style="color: rgba(128, 0, 128, 1)">$resStr</span>&lt;/td&gt;&lt;/tr&gt;" : "class=\"TestFail\"&gt;<span style="color: rgba(128, 0, 128, 1)">$resStr</span>&lt;/td&gt;&lt;/tr&gt;"<span style="color: rgba(0, 0, 0, 1)">;
    }
    output(</span>"PHP version &gt;= 4.0.5", phpversion_int() &gt;= 40005, <span style="color: rgba(0, 0, 255, 1)">array</span>("Yes", "No"<span style="color: rgba(0, 0, 0, 1)">));
    output(</span>"mysql_connect() available", <span style="color: rgba(0, 128, 128, 1)">function_exists</span>("mysql_connect"), <span style="color: rgba(0, 0, 255, 1)">array</span>("Yes", "No"<span style="color: rgba(0, 0, 0, 1)">));
    output(</span>"mysqli_connect() available", <span style="color: rgba(0, 128, 128, 1)">function_exists</span>("mysqli_connect"), <span style="color: rgba(0, 0, 255, 1)">array</span>("Yes", "No"<span style="color: rgba(0, 0, 0, 1)">));
    </span><span style="color: rgba(0, 0, 255, 1)">if</span> (phpversion_int() &gt;= 40302 &amp;&amp; <span style="color: rgba(0, 128, 128, 1)">substr</span>(<span style="color: rgba(128, 0, 128, 1)">$_SERVER</span>["SERVER_SOFTWARE"], 0, 6) == "Apache" &amp;&amp; <span style="color: rgba(0, 128, 128, 1)">function_exists</span>("apache_get_modules"<span style="color: rgba(0, 0, 0, 1)">)) {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">in_array</span>("mod_security2", <span style="color: rgba(0, 128, 128, 1)">apache_get_modules</span><span style="color: rgba(0, 0, 0, 1)">()))
            output(</span>"Mod Security 2 installed", <span style="color: rgba(0, 0, 255, 1)">false</span>, <span style="color: rgba(0, 0, 255, 1)">array</span>("No", "Yes"<span style="color: rgba(0, 0, 0, 1)">));
    }
}

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">///////////////////////////////////////////////////////////////////////////</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)">//</span>

<span style="color: rgba(0, 0, 255, 1)">if</span> (phpversion_int() &lt; 40005<span style="color: rgba(0, 0, 0, 1)">) {
    EchoHeader(</span>201<span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock("unsupported php version"<span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 0, 255, 1)">exit</span><span style="color: rgba(0, 0, 0, 1)">();
}

</span><span style="color: rgba(0, 0, 255, 1)">if</span> (phpversion_int() &lt; 40010<span style="color: rgba(0, 0, 0, 1)">) {
    </span><span style="color: rgba(0, 0, 255, 1)">global</span> <span style="color: rgba(128, 0, 128, 1)">$HTTP_POST_VARS</span><span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(128, 0, 128, 1)">$_POST</span> = &amp;<span style="color: rgba(128, 0, 128, 1)">$HTTP_POST_VARS</span><span style="color: rgba(0, 0, 0, 1)">;
}

</span><span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 0, 255, 1)">isset</span>(<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["actn"]) || !<span style="color: rgba(0, 0, 255, 1)">isset</span>(<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["host"]) || !<span style="color: rgba(0, 0, 255, 1)">isset</span>(<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["port"]) || !<span style="color: rgba(0, 0, 255, 1)">isset</span>(<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["login"<span style="color: rgba(0, 0, 0, 1)">])) {
    </span><span style="color: rgba(128, 0, 128, 1)">$testMenu</span> = <span style="color: rgba(128, 0, 128, 1)">$allowTestMenu</span><span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(128, 0, 128, 1)">$testMenu</span><span style="color: rgba(0, 0, 0, 1)">) {
      EchoHeader(</span>202<span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock("invalid parameters"<span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">exit</span><span style="color: rgba(0, 0, 0, 1)">();
    }
}

</span><span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(128, 0, 128, 1)">$testMenu</span><span style="color: rgba(0, 0, 0, 1)">) {
    </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["encodeBase64"] == '1'<span style="color: rgba(0, 0, 0, 1)">) {
      </span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(128, 0, 128, 1)">$i</span> = 0; <span style="color: rgba(128, 0, 128, 1)">$i</span> &lt; <span style="color: rgba(0, 128, 128, 1)">count</span>(<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["q"]); <span style="color: rgba(128, 0, 128, 1)">$i</span>++<span style="color: rgba(0, 0, 0, 1)">)
            </span><span style="color: rgba(128, 0, 128, 1)">$_POST</span>["q"][<span style="color: rgba(128, 0, 128, 1)">$i</span>] = <span style="color: rgba(0, 128, 128, 1)">base64_decode</span>(<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["q"][<span style="color: rgba(128, 0, 128, 1)">$i</span><span style="color: rgba(0, 0, 0, 1)">]);
    }

    </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 128, 128, 1)">function_exists</span>("mysql_connect") &amp;&amp; !<span style="color: rgba(0, 128, 128, 1)">function_exists</span>("mysqli_connect"<span style="color: rgba(0, 0, 0, 1)">)) {
      EchoHeader(</span>203<span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock("MySQL not supported on the server"<span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">exit</span><span style="color: rgba(0, 0, 0, 1)">();
    }

    </span><span style="color: rgba(128, 0, 128, 1)">$errno_c</span> = 0<span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(128, 0, 128, 1)">$hs</span> = <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["host"<span style="color: rgba(0, 0, 0, 1)">];
    </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$use_mysqli</span><span style="color: rgba(0, 0, 0, 1)">) {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["port"<span style="color: rgba(0, 0, 0, 1)">])
            </span><span style="color: rgba(128, 0, 128, 1)">$conn</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_connect</span>(<span style="color: rgba(128, 0, 128, 1)">$hs</span>, <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["login"], <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["password"], '', <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["port"<span style="color: rgba(0, 0, 0, 1)">]);
      </span><span style="color: rgba(0, 0, 255, 1)">else</span>
            <span style="color: rgba(128, 0, 128, 1)">$conn</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_connect</span>(<span style="color: rgba(128, 0, 128, 1)">$hs</span>, <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["login"], <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["password"<span style="color: rgba(0, 0, 0, 1)">]);
      </span><span style="color: rgba(128, 0, 128, 1)">$errno_c</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_connect_errno</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (phpversion_int() &gt;= 50005) {<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> for unicode database name</span>
            mysqli_set_charset(<span style="color: rgba(128, 0, 128, 1)">$conn</span>, 'UTF8'<span style="color: rgba(0, 0, 0, 1)">);
      }
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$errno_c</span> &gt; 0<span style="color: rgba(0, 0, 0, 1)">) {
            EchoHeader(</span><span style="color: rgba(128, 0, 128, 1)">$errno_c</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysqli_connect_error</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">));
            </span><span style="color: rgba(0, 0, 255, 1)">exit</span><span style="color: rgba(0, 0, 0, 1)">;
      }

      </span><span style="color: rgba(0, 0, 255, 1)">if</span> ((<span style="color: rgba(128, 0, 128, 1)">$errno_c</span> &lt;= 0) &amp;&amp; (<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["db"] != ""<span style="color: rgba(0, 0, 0, 1)">)) {
            </span><span style="color: rgba(128, 0, 128, 1)">$res</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_select_db</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span>, <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["db"<span style="color: rgba(0, 0, 0, 1)">]);
            </span><span style="color: rgba(128, 0, 128, 1)">$errno_c</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_errno</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
      }

      EchoHeader(</span><span style="color: rgba(128, 0, 128, 1)">$errno_c</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$errno_c</span> &gt; 0<span style="color: rgba(0, 0, 0, 1)">) {
            </span><span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysqli_error</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">));
      } </span><span style="color: rgba(0, 0, 255, 1)">elseif</span> (<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["actn"] == "C"<span style="color: rgba(0, 0, 0, 1)">) {
            EchoConnInfo(</span><span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
      } </span><span style="color: rgba(0, 0, 255, 1)">elseif</span> (<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["actn"] == "Q"<span style="color: rgba(0, 0, 0, 1)">) {
            </span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(128, 0, 128, 1)">$i</span> = 0; <span style="color: rgba(128, 0, 128, 1)">$i</span> &lt; <span style="color: rgba(0, 128, 128, 1)">count</span>(<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["q"]); <span style="color: rgba(128, 0, 128, 1)">$i</span>++<span style="color: rgba(0, 0, 0, 1)">) {
                </span><span style="color: rgba(128, 0, 128, 1)">$query</span> = <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["q"][<span style="color: rgba(128, 0, 128, 1)">$i</span><span style="color: rgba(0, 0, 0, 1)">];
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$query</span> == "") <span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (phpversion_int() &lt; 50400<span style="color: rgba(0, 0, 0, 1)">) {
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">get_magic_quotes_gpc</span><span style="color: rgba(0, 0, 0, 1)">())
                        </span><span style="color: rgba(128, 0, 128, 1)">$query</span> = <span style="color: rgba(0, 128, 128, 1)">stripslashes</span>(<span style="color: rgba(128, 0, 128, 1)">$query</span><span style="color: rgba(0, 0, 0, 1)">);
                }
                </span><span style="color: rgba(128, 0, 128, 1)">$res</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_query</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span>, <span style="color: rgba(128, 0, 128, 1)">$query</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(128, 0, 128, 1)">$errno</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_errno</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(128, 0, 128, 1)">$affectedrows</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_affected_rows</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(128, 0, 128, 1)">$insertid</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_insert_id</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 0, 255, 1)">false</span> !== <span style="color: rgba(128, 0, 128, 1)">$res</span><span style="color: rgba(0, 0, 0, 1)">) {
                  </span><span style="color: rgba(128, 0, 128, 1)">$numfields</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_field_count</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
                  </span><span style="color: rgba(128, 0, 128, 1)">$numrows</span> = <span style="color: rgba(0, 128, 128, 1)">mysqli_num_rows</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span><span style="color: rgba(0, 0, 0, 1)">);
                } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
                  </span><span style="color: rgba(128, 0, 128, 1)">$numfields</span> = 0<span style="color: rgba(0, 0, 0, 1)">;
                  </span><span style="color: rgba(128, 0, 128, 1)">$numrows</span> = 0<span style="color: rgba(0, 0, 0, 1)">;
                }
                EchoResultSetHeader(</span><span style="color: rgba(128, 0, 128, 1)">$errno</span>, <span style="color: rgba(128, 0, 128, 1)">$affectedrows</span>, <span style="color: rgba(128, 0, 128, 1)">$insertid</span>, <span style="color: rgba(128, 0, 128, 1)">$numfields</span>, <span style="color: rgba(128, 0, 128, 1)">$numrows</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$errno</span> &gt; 0<span style="color: rgba(0, 0, 0, 1)">)
                  </span><span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysqli_error</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">));
                </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$numfields</span> &gt; 0<span style="color: rgba(0, 0, 0, 1)">) {
                        EchoFieldsHeader(</span><span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$numfields</span><span style="color: rgba(0, 0, 0, 1)">);
                        EchoData(</span><span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$numfields</span>, <span style="color: rgba(128, 0, 128, 1)">$numrows</span><span style="color: rgba(0, 0, 0, 1)">);
                  } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span> (phpversion_int() &gt;= 40300<span style="color: rgba(0, 0, 0, 1)">)
                            </span><span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysqli_info</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">));
                        </span><span style="color: rgba(0, 0, 255, 1)">else</span>
                            <span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock(""<span style="color: rgba(0, 0, 0, 1)">);
                  }
                }
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$i</span> &lt; (<span style="color: rgba(0, 128, 128, 1)">count</span>(<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["q"]) - 1<span style="color: rgba(0, 0, 0, 1)">))
                  </span><span style="color: rgba(0, 0, 255, 1)">echo</span> "\x01"<span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">else</span>
                  <span style="color: rgba(0, 0, 255, 1)">echo</span> "\x00"<span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 0, 255, 1)">false</span> !== <span style="color: rgba(128, 0, 128, 1)">$res</span><span style="color: rgba(0, 0, 0, 1)">)
                  </span><span style="color: rgba(0, 128, 128, 1)">mysqli_free_result</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span><span style="color: rgba(0, 0, 0, 1)">);
            }
      }
    } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["port"]) <span style="color: rgba(128, 0, 128, 1)">$hs</span> .= ":" . <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["port"<span style="color: rgba(0, 0, 0, 1)">];
      </span><span style="color: rgba(128, 0, 128, 1)">$conn</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_connect</span>(<span style="color: rgba(128, 0, 128, 1)">$hs</span>, <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["login"], <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["password"<span style="color: rgba(0, 0, 0, 1)">]);
      </span><span style="color: rgba(128, 0, 128, 1)">$errno_c</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_errno</span><span style="color: rgba(0, 0, 0, 1)">();
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (phpversion_int() &gt;= 50203) {<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> for unicode database name</span>
            mysql_set_charset('UTF8', <span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
      }
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> ((<span style="color: rgba(128, 0, 128, 1)">$errno_c</span> &lt;= 0) &amp;&amp; (<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["db"] != ""<span style="color: rgba(0, 0, 0, 1)">)) {
            </span><span style="color: rgba(128, 0, 128, 1)">$res</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_select_db</span>(<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["db"], <span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(128, 0, 128, 1)">$errno_c</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_errno</span><span style="color: rgba(0, 0, 0, 1)">();
      }

      EchoHeader(</span><span style="color: rgba(128, 0, 128, 1)">$errno_c</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$errno_c</span> &gt; 0<span style="color: rgba(0, 0, 0, 1)">) {
            </span><span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysql_error</span><span style="color: rgba(0, 0, 0, 1)">());
      } </span><span style="color: rgba(0, 0, 255, 1)">elseif</span> (<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["actn"] == "C"<span style="color: rgba(0, 0, 0, 1)">) {
            EchoConnInfo(</span><span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
      } </span><span style="color: rgba(0, 0, 255, 1)">elseif</span> (<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["actn"] == "Q"<span style="color: rgba(0, 0, 0, 1)">) {
            </span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(128, 0, 128, 1)">$i</span> = 0; <span style="color: rgba(128, 0, 128, 1)">$i</span> &lt; <span style="color: rgba(0, 128, 128, 1)">count</span>(<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["q"]); <span style="color: rgba(128, 0, 128, 1)">$i</span>++<span style="color: rgba(0, 0, 0, 1)">) {
                </span><span style="color: rgba(128, 0, 128, 1)">$query</span> = <span style="color: rgba(128, 0, 128, 1)">$_POST</span>["q"][<span style="color: rgba(128, 0, 128, 1)">$i</span><span style="color: rgba(0, 0, 0, 1)">];
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$query</span> == "") <span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (phpversion_int() &lt; 50400<span style="color: rgba(0, 0, 0, 1)">) {
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 128, 128, 1)">get_magic_quotes_gpc</span><span style="color: rgba(0, 0, 0, 1)">())
                        </span><span style="color: rgba(128, 0, 128, 1)">$query</span> = <span style="color: rgba(0, 128, 128, 1)">stripslashes</span>(<span style="color: rgba(128, 0, 128, 1)">$query</span><span style="color: rgba(0, 0, 0, 1)">);
                }
                </span><span style="color: rgba(128, 0, 128, 1)">$res</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_query</span>(<span style="color: rgba(128, 0, 128, 1)">$query</span>, <span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(128, 0, 128, 1)">$errno</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_errno</span><span style="color: rgba(0, 0, 0, 1)">();
                </span><span style="color: rgba(128, 0, 128, 1)">$affectedrows</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_affected_rows</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(128, 0, 128, 1)">$insertid</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_insert_id</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(128, 0, 128, 1)">$numfields</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_num_fields</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(128, 0, 128, 1)">$numrows</span> = <span style="color: rgba(0, 128, 128, 1)">mysql_num_rows</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span><span style="color: rgba(0, 0, 0, 1)">);
                EchoResultSetHeader(</span><span style="color: rgba(128, 0, 128, 1)">$errno</span>, <span style="color: rgba(128, 0, 128, 1)">$affectedrows</span>, <span style="color: rgba(128, 0, 128, 1)">$insertid</span>, <span style="color: rgba(128, 0, 128, 1)">$numfields</span>, <span style="color: rgba(128, 0, 128, 1)">$numrows</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$errno</span> &gt; 0<span style="color: rgba(0, 0, 0, 1)">)
                  </span><span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysql_error</span><span style="color: rgba(0, 0, 0, 1)">());
                </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$numfields</span> &gt; 0<span style="color: rgba(0, 0, 0, 1)">) {
                        EchoFieldsHeader(</span><span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$numfields</span><span style="color: rgba(0, 0, 0, 1)">);
                        EchoData(</span><span style="color: rgba(128, 0, 128, 1)">$res</span>, <span style="color: rgba(128, 0, 128, 1)">$numfields</span>, <span style="color: rgba(128, 0, 128, 1)">$numrows</span><span style="color: rgba(0, 0, 0, 1)">);
                  } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span> (phpversion_int() &gt;= 40300<span style="color: rgba(0, 0, 0, 1)">)
                            </span><span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock(<span style="color: rgba(0, 128, 128, 1)">mysql_info</span>(<span style="color: rgba(128, 0, 128, 1)">$conn</span><span style="color: rgba(0, 0, 0, 1)">));
                        </span><span style="color: rgba(0, 0, 255, 1)">else</span>
                            <span style="color: rgba(0, 0, 255, 1)">echo</span> GetBlock(""<span style="color: rgba(0, 0, 0, 1)">);
                  }
                }
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">$i</span> &lt; (<span style="color: rgba(0, 128, 128, 1)">count</span>(<span style="color: rgba(128, 0, 128, 1)">$_POST</span>["q"]) - 1<span style="color: rgba(0, 0, 0, 1)">))
                  </span><span style="color: rgba(0, 0, 255, 1)">echo</span> "\x01"<span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">else</span>
                  <span style="color: rgba(0, 0, 255, 1)">echo</span> "\x00"<span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 128, 128, 1)">mysql_free_result</span>(<span style="color: rgba(128, 0, 128, 1)">$res</span><span style="color: rgba(0, 0, 0, 1)">);
            }
      }
    }
    </span><span style="color: rgba(0, 0, 255, 1)">exit</span><span style="color: rgba(0, 0, 0, 1)">();
}

</span><span style="color: rgba(0, 128, 128, 1)">header</span>("Content-Type: text/html"<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)">///////////////////////////////////////////////////////////////////////////</span>
?&gt;

&lt;!DOCTYPE html <span style="color: rgba(0, 0, 255, 1)">PUBLIC</span> "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;

&lt;head&gt;
    &lt;title&gt;Navicat HTTP Tunnel Tester&lt;/title&gt;
    &lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;
    &lt;style type="text/css"&gt;<span style="color: rgba(0, 0, 0, 1)">
      body {
            margin</span>:<span style="color: rgba(0, 0, 0, 1)"> 30px;
            font</span>-family:<span style="color: rgba(0, 0, 0, 1)"> Tahoma;
            font</span>-weight:<span style="color: rgba(0, 0, 0, 1)"> normal;
            font</span>-size:<span style="color: rgba(0, 0, 0, 1)"> 14px;
            color</span>: <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">222222;</span>
<span style="color: rgba(0, 0, 0, 1)">      }

      table {
            width</span>: 100%<span style="color: rgba(0, 0, 0, 1)">;
            border</span>:<span style="color: rgba(0, 0, 0, 1)"> 0px;
      }

      input {
            font</span>-family: Tahoma, sans-<span style="color: rgba(0, 0, 0, 1)">serif;
            border</span>-style:<span style="color: rgba(0, 0, 0, 1)"> solid;
            border</span>-color: <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">666666;</span>
            border-width:<span style="color: rgba(0, 0, 0, 1)"> 1px;
      }

      fieldset {
            border</span>-style:<span style="color: rgba(0, 0, 0, 1)"> solid;
            border</span>-color: <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">666666;</span>
            border-width:<span style="color: rgba(0, 0, 0, 1)"> 1px;
      }

      </span>.<span style="color: rgba(0, 0, 0, 1)">Title1 {
            font</span>-size:<span style="color: rgba(0, 0, 0, 1)"> 30px;
            color</span>: <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">003366;</span>
<span style="color: rgba(0, 0, 0, 1)">      }

      </span>.<span style="color: rgba(0, 0, 0, 1)">Title2 {
            font</span>-size:<span style="color: rgba(0, 0, 0, 1)"> 10px;
            color</span>: <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">999966;</span>
<span style="color: rgba(0, 0, 0, 1)">      }

      </span>.<span style="color: rgba(0, 0, 0, 1)">TestDesc {
            width</span>: 70%<span style="color: rgba(0, 0, 0, 1)">
      }

      </span>.<span style="color: rgba(0, 0, 0, 1)">TestSucc {
            color</span>: <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">00BB00;</span>
<span style="color: rgba(0, 0, 0, 1)">      }

      </span>.<span style="color: rgba(0, 0, 0, 1)">TestFail {
            color</span>: <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">DD0000;</span>
<span style="color: rgba(0, 0, 0, 1)">      }

      </span>.<span style="color: rgba(0, 128, 128, 1)">mysql</span><span style="color: rgba(0, 0, 0, 1)"> {}

      </span>.<span style="color: rgba(0, 0, 0, 1)">pgsql {
            display</span>:<span style="color: rgba(0, 0, 0, 1)"> none;
      }

      </span>.<span style="color: rgba(0, 0, 0, 1)">sqlite {
            display</span>:<span style="color: rgba(0, 0, 0, 1)"> none;
      }

      </span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">page {</span>
            <span style="color: rgba(0, 128, 128, 1)">max</span>-width:<span style="color: rgba(0, 0, 0, 1)"> 42em;
            </span><span style="color: rgba(0, 128, 128, 1)">min</span>-width:<span style="color: rgba(0, 0, 0, 1)"> 36em;
            border</span>-width:<span style="color: rgba(0, 0, 0, 1)"> 0px;
            margin</span>:<span style="color: rgba(0, 0, 0, 1)"> auto auto;
      }

      </span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">host,</span>
      <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">dbfile {</span>
            width:<span style="color: rgba(0, 0, 0, 1)"> 300px;
      }

      </span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">port {</span>
            width:<span style="color: rgba(0, 0, 0, 1)"> 75px;
      }

      </span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">login,</span>
      <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">password,</span>
      <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">db {</span>
            width:<span style="color: rgba(0, 0, 0, 1)"> 150px;
      }

      </span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">Copyright {</span>
            text-align:<span style="color: rgba(0, 0, 0, 1)"> right;
            font</span>-size:<span style="color: rgba(0, 0, 0, 1)"> 10px;
            color</span>: <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">888888;</span>
<span style="color: rgba(0, 0, 0, 1)">      }
    </span>&lt;/style&gt;
    &lt;script type="text/javascript"&gt;
      <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> getInternetExplorerVersion() {
            </span><span style="color: rgba(0, 0, 255, 1)">var</span> ver = -1<span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (navigator.appName == "Microsoft Internet Explorer"<span style="color: rgba(0, 0, 0, 1)">) {
                </span><span style="color: rgba(0, 0, 255, 1)">var</span> regex = <span style="color: rgba(0, 0, 255, 1)">new</span> RegExp("MSIE ({1,}[\.0-9]{0,})"<span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (regex.<span style="color: rgba(0, 128, 128, 1)">exec</span>(navigator.<span style="color: rgba(0, 0, 0, 1)">userAgent))
                  ver </span>= parseFloat(RegExp.$1<span style="color: rgba(0, 0, 0, 1)">);
            }
            </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> ver;
      }

      </span><span style="color: rgba(0, 0, 255, 1)">function</span> setText(element, text,<span style="color: rgba(0, 0, 0, 1)"> succ) {
            element</span>.className = (succ) ? "TestSucc" : "TestFail"<span style="color: rgba(0, 0, 0, 1)">;
            element</span>.innerHTML =<span style="color: rgba(0, 0, 0, 1)"> text;
      }

      </span><span style="color: rgba(0, 0, 255, 1)">function</span> getByteAt(str,<span style="color: rgba(0, 0, 0, 1)"> offset) {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> str.charCodeAt(offset) &amp; 0xff<span style="color: rgba(0, 0, 0, 1)">;
      }

      </span><span style="color: rgba(0, 0, 255, 1)">function</span> getIntAt(binStr,<span style="color: rgba(0, 0, 0, 1)"> offset) {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> (getByteAt(binStr, offset) &lt;&lt; 24) +<span style="color: rgba(0, 0, 0, 1)">
                (getByteAt(binStr</span>, offset + 1) &lt;&lt; 16) +<span style="color: rgba(0, 0, 0, 1)">
                (getByteAt(binStr</span>, offset + 2) &lt;&lt; 8) +<span style="color: rgba(0, 0, 0, 1)">
                (getByteAt(binStr</span>, offset + 3) &gt;&gt;&gt; 0<span style="color: rgba(0, 0, 0, 1)">);
      }

      </span><span style="color: rgba(0, 0, 255, 1)">function</span> getBlockStr(binStr,<span style="color: rgba(0, 0, 0, 1)"> offset) {
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (getByteAt(binStr, offset) &lt; 254<span style="color: rgba(0, 0, 0, 1)">)
                </span><span style="color: rgba(0, 0, 255, 1)">return</span> binStr.substring(offset + 1, offset + 1 + binStr.<span style="color: rgba(0, 0, 0, 1)">charCodeAt(offset));
            </span><span style="color: rgba(0, 0, 255, 1)">else</span>
                <span style="color: rgba(0, 0, 255, 1)">return</span> binStr.substring(offset + 5, offset + 5 + getIntAt(binStr, offset + 1<span style="color: rgba(0, 0, 0, 1)">));
      }

      </span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> doServerTest() {
            </span><span style="color: rgba(0, 0, 255, 1)">var</span> version =<span style="color: rgba(0, 0, 0, 1)"> getInternetExplorerVersion();
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (version == -1 || version &gt;= 9.0<span style="color: rgba(0, 0, 0, 1)">) {
                </span><span style="color: rgba(0, 0, 255, 1)">var</span> xmlhttp = (window.XMLHttpRequest) ? <span style="color: rgba(0, 0, 255, 1)">new</span> XMLHttpRequest() : xmlhttp = <span style="color: rgba(0, 0, 255, 1)">new</span> ActiveXObject("Microsoft.XMLHTTP"<span style="color: rgba(0, 0, 0, 1)">);

                xmlhttp</span>.onreadystatechange = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">() {
                  </span><span style="color: rgba(0, 0, 255, 1)">var</span> outputDiv = document.getElementById("ServerTest"<span style="color: rgba(0, 0, 0, 1)">);
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span> (xmlhttp.readyState == 4<span style="color: rgba(0, 0, 0, 1)">) {
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span> (xmlhttp.status == 200<span style="color: rgba(0, 0, 0, 1)">) {
                            </span><span style="color: rgba(0, 0, 255, 1)">var</span> errno = getIntAt(xmlhttp.responseText, 6<span style="color: rgba(0, 0, 0, 1)">);
                            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (errno == 0<span style="color: rgba(0, 0, 0, 1)">)
                              setText(outputDiv</span>, "Connection Success!", <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
                            </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">
                              setText(outputDiv</span>, parseInt(errno) + " - " + getBlockStr(xmlhttp.responseText, 16), <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">);
                        } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">
                            setText(outputDiv</span>, "HTTP Error - " + xmlhttp.status, <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">);
                  }
                }

                </span><span style="color: rgba(0, 0, 255, 1)">var</span> params = ""<span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">var</span> form = document.getElementById("TestServerForm"<span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(0, 0, 255, 1)">var</span> i = 0; i &lt; form.elements.length; i++<span style="color: rgba(0, 0, 0, 1)">) {
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span> (i &gt; 0) params += "&amp;"<span style="color: rgba(0, 0, 0, 1)">;
                  params </span>+= form.elements.id + "=" + form.elements.value.replace("&amp;", "%26"<span style="color: rgba(0, 0, 0, 1)">);
                }

                document</span>.getElementById("ServerTest").className = ""<span style="color: rgba(0, 0, 0, 1)">;
                document</span>.getElementById("ServerTest").innerHTML = "Connecting..."<span style="color: rgba(0, 0, 0, 1)">;
                xmlhttp</span>.open("POST", "", <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
                xmlhttp</span>.setRequestHeader("Content-type", "application/x-www-form-urlencoded"<span style="color: rgba(0, 0, 0, 1)">);
                xmlhttp</span>.setRequestHeader("Content-length", params.<span style="color: rgba(0, 0, 0, 1)">length);
                xmlhttp</span>.setRequestHeader("Connection", "close"<span style="color: rgba(0, 0, 0, 1)">);
                xmlhttp</span>.<span style="color: rgba(0, 0, 0, 1)">send(params);
            } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
                document</span>.getElementById("ServerTest").className = ""<span style="color: rgba(0, 0, 0, 1)">;
                document</span>.getElementById("ServerTest").innerHTML = "Internet Explorer " + version + " is not supported, please use Internet explorer 9.0 or above, firefox, chrome or safari"<span style="color: rgba(0, 0, 0, 1)">;
            }
      }
    </span>&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
    &lt;div id="page"&gt;
      &lt;p&gt;
            &lt;font <span style="color: rgba(0, 0, 255, 1)">class</span>="Title1"&gt;Navicat&amp;trade;&lt;/font&gt;&lt;br&gt;
            &lt;font <span style="color: rgba(0, 0, 255, 1)">class</span>="Title2"&gt;The gateway to your database!&lt;/font&gt;
      &lt;/p&gt;
      &lt;fieldset&gt;
            &lt;legend&gt;<span style="color: rgba(0, 128, 128, 1)">System</span> Environment Test&lt;/legend&gt;
            &lt;table&gt;
                &lt;tr style="&lt;?php echo "display:none"; ?&gt;"&gt;
                  &lt;td width=70%&gt;PHP installed properly&lt;/td&gt;
                  &lt;td <span style="color: rgba(0, 0, 255, 1)">class</span>="TestFail"&gt;No&lt;/td&gt;
                &lt;/tr&gt;
                &lt;?php <span style="color: rgba(0, 0, 255, 1)">echo</span> doSystemTest(); ?&gt;
            &lt;/table&gt;
      &lt;/fieldset&gt;
      &lt;br&gt;
      &lt;fieldset&gt;
            &lt;legend&gt;Server Test&lt;/legend&gt;
            &lt;form id="TestServerForm" action="#" onSubmit="return false;"&gt;
                &lt;input type=hidden id="actn" value="C"&gt;
                &lt;table&gt;
                  &lt;tr <span style="color: rgba(0, 0, 255, 1)">class</span>="mysql"&gt;
                        &lt;td width="35%"&gt;Hostname/IP Address:&lt;/td&gt;
                        &lt;td&gt;&lt;input type=text id="host" placeholder="localhost"&gt;&lt;/td&gt;
                  &lt;/tr&gt;
                  &lt;tr <span style="color: rgba(0, 0, 255, 1)">class</span>="mysql"&gt;
                        &lt;td&gt;Port:&lt;/td&gt;
                        &lt;td&gt;&lt;input type=text id="port" placeholder="3306"&gt;&lt;/td&gt;
                  &lt;/tr&gt;
                  &lt;tr <span style="color: rgba(0, 0, 255, 1)">class</span>="pgsql"&gt;
                        &lt;td&gt;Initial Database:&lt;/td&gt;
                        &lt;td&gt;&lt;input type=text id="db" placeholder="template1"&gt;&lt;/td&gt;
                  &lt;/tr&gt;
                  &lt;tr <span style="color: rgba(0, 0, 255, 1)">class</span>="mysql"&gt;
                        &lt;td&gt;Username:&lt;/td&gt;
                        &lt;td&gt;&lt;input type=text id="login" placeholder="root"&gt;&lt;/td&gt;
                  &lt;/tr&gt;
                  &lt;tr <span style="color: rgba(0, 0, 255, 1)">class</span>="mysql"&gt;
                        &lt;td&gt;Password:&lt;/td&gt;
                        &lt;td&gt;&lt;input type=password id="password" placeholder=""&gt;&lt;/td&gt;
                  &lt;/tr&gt;
                  &lt;tr <span style="color: rgba(0, 0, 255, 1)">class</span>="sqlite"&gt;
                        &lt;td&gt;Database <span style="color: rgba(0, 128, 128, 1)">File</span>:&lt;/td&gt;
                        &lt;td&gt;&lt;input type=text id="dbfile" placeholder="sqlite.db"&gt;&lt;/td&gt;
                  &lt;/tr&gt;
                  &lt;tr&gt;
                        &lt;td&gt;&lt;/td&gt;
                        &lt;td&gt;&lt;br&gt;&lt;input id="TestButton" type="submit" value="Test Connection" onClick="doServerTest()"&gt;&lt;/td&gt;
                  &lt;/tr&gt;
                &lt;/table&gt;
            &lt;/form&gt;
            &lt;div id="ServerTest"&gt;&lt;br&gt;&lt;/div&gt;
      &lt;/fieldset&gt;
      &lt;p id="Copyright"&gt;Copyright &amp;<span style="color: rgba(0, 128, 128, 1)">copy</span>; PremiumSoft &amp;trade; CyberTech Ltd. All Rights Reserved.&lt;/p&gt;
    &lt;/div&gt;
&lt;/body&gt;

&lt;/html&gt;</pre>
</div>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <hr>
<b>
欢迎转载,转载请注明:转载自[
http://www.cnblogs.com/zjfree/
]</b><br><br>
来源:https://www.cnblogs.com/zjfree/p/13570083.html
頁: [1]
查看完整版本: Navicat 使用HTTP代理连接mysql ntunnel_mysql.php