- 论坛徽章:
- 0
|
这是我在网上找的一个老外的php文档,但是只是识别英文字母和数字,可是现在想用在我的库上,我的数据库的人物名都是中文名字的,我试着改了一点,让他能支持中文识别,比如
function shitChecker($str)
{
$var = preg_match('/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u',$str);
return $var;
}
可是放在这个文档之后运行之后还是说找不到该人名,返回的值是No such character exists on that account!,我就郁闷了,整个文档如下,看哪位朋友能有余力能指点一二,先谢了!在线等<?php
/*
Nothing needs to be changed, feel free to alter anything.
Please leave the 'Made by Bellatrix' line.
*/
echo "<html><body>";
echo "<center><table>";
echo "<tr><td colspan=2 align=center>Put a picture here</td></tr>";
include('_config.php');
global $aHost, $aDatabase, $aPort, $aUsername, $aPass, $cHost, $cDatabase, $cPort, $cUsername, $cPass;
function shitChecker($str)
{
$var = preg_match('/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u',$str);
return $var;
}
function shitCheckerNum($str)
{
$var = preg_match('/[^a-zA-Z0-9]/', $str);
return $var;
}
//if unstuck button is pressed, verify and query db if valid
if(isset($_POST['submit']))
{
//players account name, password and character name
$account = $_POST['account'];
$password = $_POST['password'];
$character = $_POST['character'];
//Connect to character database
$con = mysql_connect($cHost.":".$cPort, $cUsername, $cPass) or die(mysql_error());
mysql_select_db($cDatabase) or die(mysql_error());
//Remove bullshit characters from user entered data
$character = mysql_real_escape_string(html_entity_decode(htmlentities($character)));
//check for non-alpha characters
if(shitChecker($character) == 1)
{
die("Error: The character name contains invalid characters!");
}
//Get acct id
$query = "SELECT acct FROM characters WHERE name = '".$character."'";
$result = mysql_query($query) or die(mysql_error());
$numrows = mysql_num_rows($result);
echo "<tr><td align=center>";
//if no rows exist, the character does not exist
if($numrows == 0)
{
die("No such character exists on that account!");
}
$row = mysql_fetch_array($result);
$acct = $row[0];
mysql_close();
//Connect to accounts database
$con = mysql_connect($aHost.":".$aPort, $aUsername, $aPass) or die(mysql_error());
mysql_select_db($aDatabase) or die(mysql_error());
//Remove bullshit characters from user entered data
$account = mysql_real_escape_string(html_entity_decode(htmlentities($account)));
$password = mysql_real_escape_string(html_entity_decode(htmlentities($password)));
if(shitCheckerNum($account) == 1)
{
die("Error: Account contains invalid characters!");
}
if(shitCheckerNum($password) == 1)
{
die("Error: Password contains invalid characters!");
}
$query = "SELECT login, acct, password FROM accounts WHERE login ='".$account."' AND password = '".$password."' AND acct = '".$acct."'";
$result = mysql_query($query) or die(mysql_error());
$numrows = mysql_num_rows($result);
//if no rows, user entered invalid data
if ($numrows == 0)
{
die("Account name or password is incorrect!");
}
//update the character table to set the character to hearth location
$query = "update characters SET positionX = bindpositionX, positionY = bindpositionY, positionZ = bindpositionZ, mapId = bindmapId, zoneId = bindzoneId WHERE name = '".$character."'";
mysql_query($query) or die(mysql_error());
echo "Character '".$character."' has been unstuck!";
echo "</td></tr>";
//close mysql connection
mysql_close();
}
//if page is loaded, display unstuck form
else
{
echo "<form name=myform method=post action='unstuck.php'>";
echo "<tr><td colspan=2 align=center><font size=4>Character Unstuck</td></tr>";
echo "<tr><td width=125>Account Name: </td><td><input type=text name=account value=''></td></tr>";
echo "<tr><td width=125>Character Name: </td><td><input type=text name=character value=''></td></tr>";
echo "<tr><td width=125>Password: </td><td><input type=password name=password value=''></td></tr>";
echo "<tr><td colspan=2 align=center><br><input type=submit name=submit value=Unstuck></td></tr>";
echo "</form>";
}
echo "</table></center>";
echo "Made by Bellatrix";
?> |
|
|