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><?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 &&<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() < 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> < <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> < 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> < <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>-><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>-><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>-><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>-><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>-><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> > 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> > 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> > 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> > 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> < <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> < <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> "<tr><td class=\"TestDesc\"><span style="color: rgba(128, 0, 128, 1)">$description</span></td><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\"><span style="color: rgba(128, 0, 128, 1)">$resStr</span></td></tr>" : "class=\"TestFail\"><span style="color: rgba(128, 0, 128, 1)">$resStr</span></td></tr>"<span style="color: rgba(0, 0, 0, 1)">;
}
output(</span>"PHP version >= 4.0.5", phpversion_int() >= 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() >= 40302 && <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" && <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() < 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() < 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> = &<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> < <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") && !<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() >= 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> > 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> <= 0) && (<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> > 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> < <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() < 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> > 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> > 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() >= 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> < (<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() >= 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> <= 0) && (<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> > 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> < <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() < 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> > 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> > 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() >= 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> < (<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>
?>
<!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">
<html>
<head>
<title>Navicat HTTP Tunnel Tester</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<style type="text/css"><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></style>
<script type="text/javascript">
<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) & 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) << 24) +<span style="color: rgba(0, 0, 0, 1)">
(getByteAt(binStr</span>, offset + 1) << 16) +<span style="color: rgba(0, 0, 0, 1)">
(getByteAt(binStr</span>, offset + 2) << 8) +<span style="color: rgba(0, 0, 0, 1)">
(getByteAt(binStr</span>, offset + 3) >>> 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) < 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 >= 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 < form.elements.length; i++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (i > 0) params += "&"<span style="color: rgba(0, 0, 0, 1)">;
params </span>+= form.elements.id + "=" + form.elements.value.replace("&", "%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></script>
</head>
<body>
<div id="page">
<p>
<font <span style="color: rgba(0, 0, 255, 1)">class</span>="Title1">Navicat&trade;</font><br>
<font <span style="color: rgba(0, 0, 255, 1)">class</span>="Title2">The gateway to your database!</font>
</p>
<fieldset>
<legend><span style="color: rgba(0, 128, 128, 1)">System</span> Environment Test</legend>
<table>
<tr style="<?php echo "display:none"; ?>">
<td width=70%>PHP installed properly</td>
<td <span style="color: rgba(0, 0, 255, 1)">class</span>="TestFail">No</td>
</tr>
<?php <span style="color: rgba(0, 0, 255, 1)">echo</span> doSystemTest(); ?>
</table>
</fieldset>
<br>
<fieldset>
<legend>Server Test</legend>
<form id="TestServerForm" action="#" onSubmit="return false;">
<input type=hidden id="actn" value="C">
<table>
<tr <span style="color: rgba(0, 0, 255, 1)">class</span>="mysql">
<td width="35%">Hostname/IP Address:</td>
<td><input type=text id="host" placeholder="localhost"></td>
</tr>
<tr <span style="color: rgba(0, 0, 255, 1)">class</span>="mysql">
<td>Port:</td>
<td><input type=text id="port" placeholder="3306"></td>
</tr>
<tr <span style="color: rgba(0, 0, 255, 1)">class</span>="pgsql">
<td>Initial Database:</td>
<td><input type=text id="db" placeholder="template1"></td>
</tr>
<tr <span style="color: rgba(0, 0, 255, 1)">class</span>="mysql">
<td>Username:</td>
<td><input type=text id="login" placeholder="root"></td>
</tr>
<tr <span style="color: rgba(0, 0, 255, 1)">class</span>="mysql">
<td>Password:</td>
<td><input type=password id="password" placeholder=""></td>
</tr>
<tr <span style="color: rgba(0, 0, 255, 1)">class</span>="sqlite">
<td>Database <span style="color: rgba(0, 128, 128, 1)">File</span>:</td>
<td><input type=text id="dbfile" placeholder="sqlite.db"></td>
</tr>
<tr>
<td></td>
<td><br><input id="TestButton" type="submit" value="Test Connection" onClick="doServerTest()"></td>
</tr>
</table>
</form>
<div id="ServerTest"><br></div>
</fieldset>
<p id="Copyright">Copyright &<span style="color: rgba(0, 128, 128, 1)">copy</span>; PremiumSoft &trade; CyberTech Ltd. All Rights Reserved.</p>
</div>
</body>
</html></pre>
</div>
<p> </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]