summaryrefslogtreecommitdiffstats
path: root/mbbsd
diff options
context:
space:
mode:
authorin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-03-02 20:06:31 +0800
committerin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-03-02 20:06:31 +0800
commit11dd289ca94895698659e94a462457c75733331b (patch)
tree09af0ad54ac55bd9d9c55ae02762c0b562f13bd2 /mbbsd
parent2b6bc05af8cee0ee3db2bda82f35282071c76280 (diff)
downloadpttbbs-11dd289ca94895698659e94a462457c75733331b.tar
pttbbs-11dd289ca94895698659e94a462457c75733331b.tar.gz
pttbbs-11dd289ca94895698659e94a462457c75733331b.tar.bz2
pttbbs-11dd289ca94895698659e94a462457c75733331b.tar.lz
pttbbs-11dd289ca94895698659e94a462457c75733331b.tar.xz
pttbbs-11dd289ca94895698659e94a462457c75733331b.tar.zst
pttbbs-11dd289ca94895698659e94a462457c75733331b.zip
register
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1575 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd')
-rw-r--r--mbbsd/user.c63
1 files changed, 42 insertions, 21 deletions
diff --git a/mbbsd/user.c b/mbbsd/user.c
index f48a5f4f..737a99b4 100644
--- a/mbbsd/user.c
+++ b/mbbsd/user.c
@@ -948,6 +948,10 @@ toregister(char *email, char *genbuf, char *phone, char *career,
}
clear();
stand_title("�{�ҳ]�w");
+ if (cuser.userlevel & PERM_NOREGCODE){
+ strcpy(email, "x");
+ goto REGFORM2;
+ }
move(2, 0);
outs("�z�n, �����{�һ{�Ҫ��覡��:\n"
" 1.�Y�z�� E-Mail (���������� yahoo, kimo���K�O�� E-Mail)\n"
@@ -1002,6 +1006,7 @@ toregister(char *email, char *genbuf, char *phone, char *career,
}
}
strncpy(cuser.email, email, sizeof(cuser.email));
+ REGFORM2:
if (strcasecmp(email, "x") == 0) { /* ��ʻ{�� */
if ((fn = fopen(fn_register, "a"))) {
fprintf(fn, "num: %d, %s", usernum, ctime(&now));
@@ -1081,9 +1086,9 @@ static char *isvalidname(char *rname)
{
char *rejectstr[] =
{"��", "�D", "���Y", "�p��", "�p��", "���H", "�Ѥ�", "�ѧ�", "�_��",
- "����", "�v��", "���Y", "�p�n", "�p�j", "���k", "�p�f", "�j�Y",
+ "����", "�ӭ�", "���Y", "�p�n", "�p�j", "���k", "�p�f", "�j�Y",
"���D", "�P��", "�_�_", "���l", "�j�Y", "�p�p", "�p��", "�p�f",
- "�f�f", "�K", "��",
+ "�f�f", "�K", "��", "�ݷ�", "�j��", "�L",
NULL};
if( removespace(rname) && rname[0] < 0 &&
strlen(rname) >= 4 &&
@@ -1103,8 +1108,11 @@ static char *isvalidcareer(char *career)
strcmp(career, "�a��") == 0 || HaveRejectStr(career, rejectstr) )
return "�z����J�����T";
if (strcmp(&career[strlen(career) - 2], "�j") == 0 ||
- strcmp(&career[strlen(career) - 4], "�j��") == 0 )
+ strcmp(&career[strlen(career) - 4], "�j��") == 0 ||
+ strcmp(career, "�ǥͤj��") == 0)
return "�·нХ[�Ǯըt��";
+ if (strcmp(career, "�ǥͰ���") == 0)
+ return "�·п�J�ǮզW��";
return NULL;
}
@@ -1133,9 +1141,10 @@ static char *isvalidaddr(char *addr)
static char *isvalidphone(char *phone)
{
- if (strstr(phone, "(") || strstr(phone, ")") || strstr(phone, "-")){
- return "�q�ܽФ��[ ( ) - �Ÿ�";
- }
+ int i;
+ for( i = 0 ; phone[i] != 0 ; ++i )
+ if( !isdigit(phone[i]) )
+ return "�Ф��n�[���j�Ÿ�";
if (!removespace(phone) || phone[0] != '0' ||
strlen(phone) < 9 || phone[1] == '0' ||
strstr(phone, "00000000") != NULL ||
@@ -1206,6 +1215,11 @@ u_register(void)
fclose(fn);
}
+ if (cuser.userlevel & PERM_NOREGCODE) {
+ vmsg("�z���Q���\\�ϥλ{�ҽX�{�ҡC�ж�g���U�ӽг�");
+ goto REGFORM;
+ }
+
if (cuser.year != 0 && /* �w�g�Ĥ@����L�F~ ^^" */
strcmp(cuser.email, "x") != 0 && /* �W����ʻ{�ҥ��� */
strcmp(cuser.email, "X") != 0) {
@@ -1213,20 +1227,23 @@ u_register(void)
stand_title("EMail�{��");
move(2, 0);
prints("%s(%s) �z�n�A�п�J�z���{�ҽX�C\n"
- "�αz�i�H��J x�ӭ��s��g E-Mail �Χ�ѯ�����ʻ{��",
+ "�αz�i�H��J x�ӭ��s��g E-Mail �Χ�ѯ�����ʻ{��\n",
cuser.userid, cuser.username);
inregcode[0] = 0;
- getdata(10, 0, "�z����J: ", inregcode, sizeof(inregcode), DOECHO);
+ do{
+ getdata(10, 0, "�z����J: ", inregcode, sizeof(inregcode), DOECHO);
+ if( strcmp(inregcode, "x") == 0 ||
+ strcmp(inregcode, "X") == 0 ||
+ strlen(inregcode) == 13 )
+ break;
+ if( strlen(inregcode) != 13 )
+ vmsg("�{�ҽX��J�������A���Ӥ@�@���Q�T�X�C");
+ } while( 1 );
+
if (strcmp(inregcode, getregcode(regcode)) == 0) {
int unum;
- if (cuser.userlevel & PERM_NOREGCODE) {
- prints("�z���Q���\\�H�{�ҽX�b�����{�ҡA�Ч�Τ�ʻ{�ҡC\n�����N�������C");
- pressanykey();
- exit(0);
- }
if ((unum = getuser(cuser.userid)) == 0) {
- outs("�t��~�A�d�L���H\n\n");
- pressanykey();
+ vmsg("�t��~�A�d�L���H�I");
u_exit("getuser error");
exit(0);
}
@@ -1242,15 +1259,17 @@ u_register(void)
u_exit("registed");
exit(0);
return QUIT;
- } else if (strcmp(inregcode, "x") != 0 && strcmp(inregcode, "X") != 0) {
- outs("�{�ҽX���~\n");
- pressanykey();
+ } else if (strcmp(inregcode, "x") != 0 &&
+ strcmp(inregcode, "X") != 0) {
+ vmsg("�{�ҽX���~�I");
} else {
- toregister(email, genbuf, phone, career, ident, rname, addr, mobile);
+ toregister(email, genbuf, phone, career,
+ ident, rname, addr, mobile);
return FULLUPDATE;
}
}
+ REGFORM:
getdata(b_lines - 1, 0, "�z�T�w�n��g���U���(Y/N)�H[N] ",
ans, sizeof(ans), LCECHO);
if (ans[0] != 'y')
@@ -1311,9 +1330,11 @@ u_register(void)
vmsg(errcode);
}
- move(7, 0);
+ move(6, 0);
prints("�·бz�ɶq�ԲӪ���g�z���A�ȳ��, �j�M�|�սг·�"
- "�[�t��, ���q���Х[¾��");
+ "�[\033[1;33m�t��\033[m, ���q���Х[¾��\n"
+ "�Ф��n��²�g�H�K�y���~�| :)"
+ );
while (1) {
getfield(9, "�Ǯ�(�t\033[1;33m�t�Ҧ~��\033[m)�γ��¾��",
"�A�ȳ��", career, 40);