[첫화면으로]UseModWiki소스수정/올바르지않은아이디

마지막으로 [b]

변경사항 (가장 최근의 "소소한 수정"부터) (다른 변경사항 없음)

-8,7 +8,7
* 부작용: 아직은 모름. -_-;
** 오리지날 UseModWiki 에서는, 사용자 id 는 시스템이 임의로 부여하는 숫자로만 구성된다. 이 홈페이지에서 사용하는 id 는 사실은 오리지날에서 단지 특정한 숫자아이디에 딸린 필명일 뿐이다. Luke님 버전에서 필명을 사용자를 구별하는 id 로 사용하도록 수정한 것이라, 함부로 건드리기 힘든 부분이다. 예기치 않은 부작용이 발생할 수 있다.
:
{{{perl
{{{#!vim perl
sub DoUpdatePrefs {
    ...
    if ($FreeLinks) {


환경설정에서 사용할 수 없는 아이디를 넣었을 때의 처리 문제 해결

sub DoUpdatePrefs {
    ...
    if ($FreeLinks) {
        $username =~ s/^\[\[(.+)\]\]/$1/;  # Remove [[ and ]] if added
        $username =  &FreeToNormal($username);
        $username =~ s/_/ /g;
    }
### 아래 if 문의 처음 네 블럭을 수정한다.
#   if ($username eq "") {
#       print T('UserName removed.'), '<br>';
#       undef $UserData{'username'};
#   } elsif ((!$FreeLinks) && (!($username =~ /^$LinkPattern$/))) {
#       print Ts('Invalid UserName %s: not saved.', $username), "<br>\n";
#   } elsif ($FreeLinks && (!($username =~ /^$FreeLinkPattern$/))) {
#       print Ts('Invalid UserName %s: not saved.', $username), "<br>\n";
#   } elsif (length($username) > 50) {  # Too long
#       print T('UserName must be 50 characters or less. (not saved)'), "<br>\n";
    if (length($username) < 4) {
        print T('UserName must be 4 characters or more. (not saved)'), "<br>\n";
        $UserID = 0;
        print &ScriptLink("action=editprefs", T('Try Again'));
        print &GetCommonFooter();
        return;
    } elsif ((!$FreeLinks) && (!($username =~ /^$LinkPattern$/))) {
        print Ts('Invalid UserName %s: not saved.', $username), "<br>\n";
        $UserID = 0;
        print &ScriptLink("action=editprefs", T('Try Again'));
        print &GetCommonFooter();
        return;
    } elsif ($FreeLinks && (!($username =~ /^$FreeLinkPattern$/))) {
        print Ts('Invalid UserName %s: not saved.', $username), "<br>\n";
        $UserID = 0;
        print &ScriptLink("action=editprefs", T('Try Again'));
        print &GetCommonFooter();
        return;
    } elsif (length($username) > 50) {  # Too long
        print T('UserName must be 50 characters or less. (not saved)'), "<br>\n";
        $UserID = 0;
        print &ScriptLink("action=editprefs", T('Try Again'));
        print &GetCommonFooter();
        return;
### 여기까지
    } else {
        print Ts('UserName %s saved.', $username), '<br>';
        $UserData{'username'} = $username;
    }
    ...
}


위키위키분류

마지막 편집일: 2007-1-8 12:19 pm (변경사항 [d])
717 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기