if ($FORM{'UserName'} !~ /^[a-zA-Z0-9.]+$/) #限制ID 只能用數字或英文字母
{
print "ID 只能用數字或英文字母";
exit;
}
if (length($FORM{'UserName'}) > $MaxIDLength or length($FORM{'msname'}) > $MaxNameInGame){OutputMessage('q',"ID帳號($MaxIDLength字元)或者遊戲中名稱($MaxNameInGame字元)超過規定長度");} #檢查資料內容長度
$IsBadLetters=0;
foreach $GetEachLetter(@DisableLetters) #將所有表單內字元一個一個檢查看是否有被禁用的字元
{
if (rindex($FORM{'UserName'},$GetEachLetter) ne -1) {$IsBadLetters=1;}
if (rindex($FORM{'Password'},$GetEachLetter) ne -1) {$IsBadLetters=1;}
if (rindex($FORM{'Email'},$GetEachLetter) ne -1) {$IsBadLetters=1;}
if (rindex($FORM{'type'},$GetEachLetter) ne -1) {$IsBadLetters=1;}
if (rindex($FORM{'msname'},$GetEachLetter) ne -1) {$IsBadLetters=1;}
if (rindex($FORM{'FaceImgSelect'},$GetEachLetter) ne -1) {$IsBadLetters=1;}
}
if ($IsBadLetters eq 1) {print '不可使用非法字元!';exit;}#若發現非法字元就脫離
if (length($FORM{'UserName'}) > $MaxIDLength) {print "ID帳號太長! 應小於 $MaxIDLength 個字元";exit;}
CheckHashIllegalKeyChars(%FORM); #檢查任何輸入的表單資料欄是否有空白
#檢查已存在ID資訊
sub CheckExistValue
{
($EmailAddress,$NameInGame)=@_;
my %P=ProcessDBM("getdata",$RegisterFileDBM);
while (my($Key,$Value) =each %P)
{
my @SelfValue=split (/\s/,$P{"$Key"});
my @PersonalAdditionalInfo=split(/∥_∥/,@SelfValue[2]);
if (($EmailAddress eq @PersonalAdditionalInfo[6]) && ($EmailAddress ne ""))
{
print "此Email 已經被使用! ";
exit;
}
if ($NameInGame eq @SelfValue[29])
{
print "此遊戲中稱呼已經被使用! ";
exit;
}
if ($NameInGame eq "")
{
print "遊戲中稱呼必需輸入! ";
exit;
}