文件涉及: search.php, memberlist.php, bank.php, admin/moderate.php, admin/threads.php
说明: 无法正常搜索到中文用户
更正方法:参考下列代码或从下载包替换相应文件
文件修改:
1.打开 admin/moderate.php 文件
查找335行左右,查找:
:
$DB->query( "SELECT id, name FROM ".TABLE_PREFIX."user WHERE BINARY lower(name) LIKE concat('".strtolower($_INPUT['username'])."','%')");
替换为:
:
$name = $_INPUT['username'] == strtolower($_INPUT['username']) ? 'name' : 'lower(name)';
$DB->query( "SELECT id, name FROM ".TABLE_PREFIX."user WHERE BINARY $name LIKE concat('".strtolower($_INPUT['username'])."','%')");
2.打开 admin/threads.php 文件
查找150行左右,查找:
:
if (!$user = $DB->query_first( "SELECT id,name FROM ".TABLE_PREFIX."user WHERE BINARY lower(name) ='".strtolower(trim($_INPUT['username']))."'" )) {
替换为:
:
$name = $_INPUT['username'] == strtolower($_INPUT['username']) ? 'name' : 'lower(name)';
if (!$user = $DB->query_first( "SELECT id,name FROM ".TABLE_PREFIX."user WHERE BINARY $name ='".strtolower(trim($_INPUT['username']))."'" )) {
3.打开 bank.php 文件
查找352行左右,查找:
:
$taruser = $DB->query_first("SELECT * FROM ".TABLE_PREFIX."user WHERE BINARY lower(name) = '".$_INPUT['target']."'");
替换为:
:
$name = $_INPUT['username'] == strtolower($_INPUT['target']) ? 'name' : 'lower(name)';
$taruser = $DB->query_first("SELECT * FROM ".TABLE_PREFIX."user WHERE BINARY $name = '".$_INPUT['target']."'");
4.打开 search.php 文件
查找292行左右,查找:
:
if ($_INPUT['exactname'] == 1) {
$sql_query = "SELECT id from ".TABLE_PREFIX."user WHERE BINARY lower(name) = ".strtolower($name_filter)."";
} else {
$sql_query = "SELECT id from ".TABLE_PREFIX."user WHERE BINARY lower(name) LIKE concat('%','".strtolower($name_filter)."','%')";
}
替换为:
:
$name = $name_filter == strtolower($name_filter) ? 'name' : 'lower(name)';
if ($_INPUT['exactname'] == 1) {
$sql_query = "SELECT id from ".TABLE_PREFIX."user WHERE BINARY $name = ".strtolower($name_filter)."";
} else {
$sql_query = "SELECT id from ".TABLE_PREFIX."user WHERE BINARY $name LIKE concat('%','".strtolower($name_filter)."','%')";
}
5.打开 memberlist.php 文件
查找104行左右,查找:
:
if ( $_INPUT['name_box'] == 'begins' ) {
$query[] = "BINARY lower(u.name) LIKE concat('".strtolower($inbit)."','%')";
$url[] = 'begins=1';
} else {
$query[] = "BINARY lower(u.name) LIKE concat('%','".strtolower($inbit)."','%')";
}
替换为:
:
$name = $inbit == strtolower($inbit) ? 'u.name' : 'lower(u.name)';
if ( $_INPUT['name_box'] == 'begins' ) {
$query[] = "BINARY $name LIKE concat('".strtolower($inbit)."','%')";
$url[] = 'begins=1';
} else {
$query[] = "BINARY $name LIKE concat('%','".strtolower($inbit)."','%')";
}