SetupBBS 板


下面这麽长一串 是我的register.c 之前在进站画面打 new 会出现"抱歉, 使用者帐号已经满了, 无法注册新的帐号." 我觉得应该是allocid有问题 於是我把 if(allocid > MAXUSERS || allocid <= 0) 改成 if(allocid > MAXUSERS) make以後 在进站画面打new 可以进入注册单 但是注册跑到 请输入代号: la 请设定您的密码: ******* 请再输入一次你的密码: ******* <---跑到这里断线 於是我把他改回原来的 if(allocid > MAXUSERS || allocid <= 0) 再make一次 结果还是一样 拜托救我吧 已经倒站了................. ps. MAXUSER 定义是60000 目前有的ID数是13XXX /* Pirate Bulletin Board System Copyright (C) 1990, Edward Luke, [email protected] Eagles Bulletin Board System Copyright (C) 1992, Raymond Rocker, [email protected] Guy Vega, [email protected] Dominic Tynes, [email protected] This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ //$Id: register.c,v 1.1.1.1 2000/04/12 13:20:54 pyjamas Exp $ #include "bbs.h" #define EMAIL 0x0001 #define NICK 0x0002 #define REALNAME 0x0004 #define ADDR 0x0008 #define REALEMAIL 0x0010 #define BADEMAIL 0x0020 #define NEWREG 0x0040 char *sysconf_str(); char *genpasswd(); char *Ctime(); extern char fromhost[ 60 ]; extern time_t login_start_time; time_t system_time; int bad_user_id( userid ) char *userid; { FILE *fp; char buf[STRLEN]; char *ptr, ch; ptr = userid; while( (ch = *ptr++) != '\0' ) { if( !isalnum( ch ) && ch != '_' ) return 1; } if( (fp = fopen( "etc/badname", "r" )) != NULL ) { while( fgets( buf, STRLEN, fp ) != NULL ) { ptr = strtok( buf, " \n\t\r" ); if( ptr != NULL && *ptr != '#' && ci_strcmp( ptr, userid ) == 0 ) { fclose( fp ); return 1; } } fclose(fp); } return 0; } int compute_user_value( urec ) struct userec *urec; // 传回值表示有几天没上站就砍除其ID! { int value; /* if (urec) has XEMPT permission, don't kick it */ if( urec->userlevel & PERM_XEMPT ) return 999; value = (time(0) - urec->lastlogin) / 60; /* min */ /* new user should register in 30 mins */ if( strcmp( urec->userid, "new" ) == 0 ) { return (30 - value) * 60; } if( urec->numlogins <= 3 ) return (15 * 1440 - value)/1440; if( !(urec->userlevel & PERM_LOGINOK) ) return (30 * 1440 - value)/1440; if( urec->stay > 1000000 ) return (365 * 1440 - value)/1440; if( urec->stay > 5000000 ) return (500 * 1440 - value)/1440; return (180 * 1440 - value)/1440; } /* PolyU Edition by pyjamas */ #ifdef PolyU int valid_email(addr) char *addr; { FILE *fp; if((fp = fopen( ".polyuemail", "r" )) != NULL ) { while( fgets(genbuf,STRLEN,fp) != NULL) { strtok(genbuf,"\n"); if (strstr(addr,genbuf)!=NULL) { fclose(fp); return 1; } } fclose(fp); } return 0; } #else int invalid_email( addr ) char *addr; { FILE *fp; char temp[STRLEN], tmp2[STRLEN]; if((fp = fopen( ".bad_email", "r" )) != NULL ) { while( fgets(temp,STRLEN,fp) != NULL) { strtok(genbuf,"\n"); strtolower(genbuf, temp); strtolower(tmp2, addr); if (strstr(tmp2,genbuf)!=NULL) { fclose(fp); return 1; } } fclose(fp); } return 0; } #endif int duplicate(email) char *email; { struct userec new; int flag =0; int fdr; if (HAS_PERM(PERM_SYSOP)) return 0; fdr=open(".PASSWDS",O_RDONLY); while(read(fdr,&new,sizeof(new))==sizeof(new)) { if (!strcmp(new.userid, currentuser.userid)) continue; if (!strcmp(new.email, email)|| strstr(new.realemail, email)) { flag= 1; break; } } close(fdr); return flag; } void send_regmail(trec) struct userec *trec; { time_t code; FILE *fin, *fout, *dp; sethomefile(genbuf,trec->userid,"mailcheck"); if((dp=fopen(genbuf,"w"))==NULL) { fclose(dp); return; } code = time(0); fprintf(dp,"%9.9d:%d\n",code, getpid()); fclose(dp); sprintf( genbuf, "%s -f SYSOP.bbs@%s %s ", SENDMAIL, BBSHOST, trec->email ); fout = popen( genbuf, "w" ); fin = fopen( sysconf_str( "EMAILFILE" ), "r" ); if ((fin != NULL) && (fout != NULL)) { fprintf( fout, "Reply-To: SYSOP.bbs@%s\n", BBSHOST); fprintf( fout, "From: SYSOP.bbs@%s\n", BBSHOST ); fprintf( fout, "To: %s\n", trec->email); fprintf( fout, "Subject: @%s@[-%9.9d:%d-]%s mail check.\n", trec->userid ,code, getpid(), BBSID); fprintf( fout, "X-Purpose: %s registration mail.\n", BBSNAME); fprintf( fout, "\n"); fprintf(fout,"本站位址 : %s (%s)\n", BBSHOST, BBSIP); fprintf(fout,"您注册的代号 : %s\n",trec->userid); fprintf(fout,"申请日期 : %s",ctime(&trec->firstlogin)); fprintf(fout,"登入来源 : %s\n",fromhost); fprintf(fout,"您的真实姓名/昵称: %s (%s)\n",trec->realname, trec->username); fprintf(fout,"认证信发出日期 : %s\n", ctime(&code)); while (fgets( genbuf, 255, fin ) != NULL ) { if (genbuf[0] == '.' && genbuf[ 1 ] == '\n') fputs( ". \n", fout ); else fputs( genbuf, fout ); } fprintf(fout, ".\n"); fclose( fin ); fclose( fout ); } } int getnewuserid() { struct userec utmp, zerorec; struct stat st; int fd, size, val, i; system_time = time( NULL ); if( stat( "tmp/killuser", &st )== -1 || st.st_mtime < system_time-3600 ) { if( (fd = open( "tmp/killuser", O_RDWR|O_CREAT, 0600 )) == -1 ) return -1; write( fd, ctime( &system_time ), 25 ); close( fd ); log_usies( "CLEAN", "dated users." ); printf( "寻找新帐号中, 请稍待片刻...\n\r" ); memset( &zerorec, 0, sizeof( zerorec ) ); if( (fd = open( PASSFILE, O_RDWR|O_CREAT, 0600 )) == -1 ) return -1; size = sizeof( utmp ); for( i = 0; i < MAXUSERS; i++ ) { if( read( fd, &utmp, size ) != size ) break; val = compute_user_value( &utmp ); if( utmp.userid[0] != '\0' && val < 0 ) { sprintf( genbuf, "#%-4d 名:%-12s(%-15s) 注册:%15.15s 最後:%15.15s 停留:%4d分 上站:%4d次 文章%3d %d", i+1, utmp.userid, utmp.realname, ctime( &(utmp.firstlogin)), ctime( &(utmp.lastlogin) )+4,(utmp.stay)/60, utmp.numlogins, utmp.numposts, val ); logit(LOG_KILLED, genbuf ); if( !bad_user_id( utmp.userid ) ) { /* //砍版主时 if (utmp.userlevel & PERM_BOARDS) { sethomefile(genbuf,utmp.userid,"bunny"); //负责人 if((fn = fopen( genbuf, "w" )) != NULL ) { resolve_boards(); fprintf(fn,"%s 的帐号已被砍除。他是以下版的版主:\n\n" ,utmp.userid); for (j = 0; j < brdshm->number; j++) { if (strstr(bcache[j].BM,utmp.userid)) fprintf(fn,"%s\n",bcache[j].filename); } fclose(fn); sprintf(buf2,"版主帐号被砍通知: %s",utmp.userid); postfile(genbuf,"syssecurity",buf2,3); } else fclose(fn); } //砍版主到此结束 */ sprintf( genbuf, "/bin/rm -fr mail/%c/%s", toupper(utmp.userid[0]),utmp.userid ); system( genbuf ); sprintf( genbuf, "/bin/rm -fr home/%c/%s", toupper(utmp.userid[0]),utmp.userid ); system( genbuf ); del_from_file("etc/realemail", utmp.email); del_from_file("etc/realemail", utmp.realemail); } lseek( fd, -(off_t)(size), SEEK_CUR ); write( fd, &zerorec, sizeof( utmp ) ); } } close( fd ); touchnew(); } if( (fd = open( PASSFILE, O_RDWR|O_CREAT, 0600 )) == -1 ) return -1; flock( fd, LOCK_EX ); i = searchnewuser(); sprintf( genbuf, "uid %d from %s", i, fromhost ); log_usies( "APPLY", genbuf ); if( i <= 0 || i > MAXUSERS ) { flock(fd,LOCK_UN) ; close(fd) ; if( dashf( "etc/user_full" ) ) { ansimore( "etc/user_full", NA ); oflush(); } else { printf( "抱歉, 使用者帐号已经满了, 无法注册新的帐号.\n\r" ); } val = (st.st_mtime - system_time + 3660) / 60; printf( "请等待 %d 分钟後再试一次, 祝你好运.\n\r", val ); sleep( 2 ); exit( 1 ); } memset( &utmp, 0, sizeof( utmp ) ); strcpy( utmp.userid, "new" ); utmp.lastlogin = time( NULL ); if( lseek( fd, (off_t)(sizeof(utmp) * (i-1)), SEEK_SET ) == -1 ) { flock( fd, LOCK_UN ); close( fd ); return -1; } write( fd, &utmp, sizeof(utmp) ); setuserid( i, utmp.userid ); flock( fd, LOCK_UN ); close( fd ); return i; } int id_with_num(userid) char userid[IDLEN]; { char *s; for(s=userid;*s != '\0'; s++) { if(*s<1 || ispunct(*s)) { return 1; } } return 0; } void new_register() { struct userec newuser; char passbuf[ STRLEN ]; int allocid, try,flag; if( 1 ) { time_t now; now = time( 0 ); sprintf( genbuf, "etc/no_register_%3.3s", ctime( &now ) ); if( dashf( genbuf ) ) { ansimore( genbuf, NA ); pressreturn(); exit( 1 ); } } memset( &newuser, 0, sizeof(newuser) ); allocid = getnewuserid() ; if(allocid > MAXUSERS || allocid <= 0) { printf("本站人数以达上限 半小时後再来注册吧\n\r") ; exit(1) ; } ansimore("etc/register", NA); try = 0; while( 1 ) { if( ++try >= 10 ) { prints("\n拜拜,你按太多下 <Enter> 了...\n"); refresh(); longjmp( byebye, -1 ); } getdata(0,0,"请输入代号: ",newuser.userid,IDLEN+1,DOECHO,NULL,YEA); flag = 1; if(id_with_num(newuser.userid)==1) { prints("帐号必须为英文字母及数字之组合!\n"); flag=0; } if (flag) {if(strlen(newuser.userid) < 2) { prints("代号至少需有两个英文字母!\n"); } else if ( (*newuser.userid == '\0') || bad_user_id( newuser.userid )){ prints( "系统用字或是不雅的代号。\n" ); } else if( dosearchuser( newuser.userid ) ) { prints("此帐号已经有人使用\n") ; } else if (!isalpha(newuser.userid[0])) { prints("请勿使用以数字开头的ID\n"); } else break;} } while( 1 ) { getdata(0,0,"请设定您的密码: ",passbuf,PASSLEN,NOECHO,NULL,YEA) ; if( strlen( passbuf ) < 4 || !strcmp( passbuf, newuser.userid ) ) { prints("密码太短或与使用者代号相同, 请重新输入\n") ; continue; } strncpy( newuser.passwd, passbuf, PASSLEN ); getdata(0,0,"请再输入一次你的密码: ",passbuf,PASSLEN,NOECHO,NULL,YEA); if( strncmp( passbuf, newuser.passwd, PASSLEN ) != 0 ) { prints("密码输入错误, 请重新输入密码.\n") ; continue; } passbuf[8] = '\0' ; strncpy( newuser.passwd, genpasswd( passbuf ), PASSLEN ); break; } strcpy(newuser.termtype, "vt100"); newuser.userlevel = PERM_BASIC; newuser.userdefine=-1; newuser.userdefine&=~DEF_MAILMSG; newuser.userdefine&=~DEF_SECLOGIN; newuser.editor=1; newuser.sex=0; newuser.magic=0; newuser.addmagic=0; newuser.showfile=0xffff; newuser.bmonth=0; newuser.bday=0; newuser.byear=0; newuser.unsign_ffff=0xffff; newuser.unsign_0000=0x0000; newuser.card=0; newuser.unused1=0; newuser.magic=0; newuser.money=0; newuser.lent=0; newuser.bank=0; newuser.flags[0] = CURSOR_FLAG; newuser.flags[0]|= PAGER_FLAG; newuser.flags[1] = 0; newuser.firstlogin = newuser.lastlogin = time(NULL) ; if( substitute_record(PASSFILE,&newuser,sizeof(newuser),allocid) == -1 ) { fprintf(stderr,"too much, good bye!\n") ; exit(1) ; } setuserid( allocid, newuser.userid ); if( !dosearchuser(newuser.userid) ) { fprintf(stderr,"User failed to create\n") ; exit(1) ; } report( "new account" ); } char * trim( s ) char *s; { static char buf[ 256 ]; char *l, *r; buf[ 0 ] = '\0' ; r = s + strlen( s ) - 1; for (l = s ; strchr(" \t\r\n", *l) && *l; l++); /* if all space, *l is null here, we just return null */ if (*l != '\0') { for ( ; strchr(" \t\r\n", *r) && r >= l ; r-- ); strncpy( buf, l, r - l + 1 ); } return buf; } int invalid_realmail( userid, email, msize ) char *userid, *email; int msize; { FILE *fn; char *emailfile, fname[STRLEN]; if( (emailfile = sysconf_str( "EMAILFILE" )) == NULL ) return 0; if( strchr( email, '@' ) && valid_ident( email )&& HAS_PERM(PERM_LOGINOK) ) return 0; sethomefile(fname,userid,"register"); if( (fn = fopen( fname, "r" )) != NULL ) { fgets( genbuf, STRLEN, fn ); fclose( fn ); strtok( genbuf, "\n" ); if (valid_ident(genbuf) && ((strchr(genbuf,'@') != NULL)||strstr(genbuf,"usernum"))) { if(strchr(genbuf,'@') != NULL); strncpy( email, genbuf, NAMELEN ); move( 10, 0 ); prints( "恭贺你! 您已通过身份验证,成为本站公民。 \n" ); prints( " 本站为您所提供的额外服务,\n" ); prints( " 包括玩游戏, 送讯息 等. \n" ); prints( " \n" ); prints( "建议你, 先四处浏览一下,由其是本站里头的本站使用手册 \n" ); prints( " 不懂的地方,请在 ;31msysopm 板提问,\n" ); prints( " 本站站友会尽快为您解答。\n" ); pressanykey(NULL); return 0; } } return 1; } void check_register_info() { struct userec *urec = &currentuser; char *newregfile; int perm; FILE *fout; char ans[4],buf[192],buf2[STRLEN]; clear(); sprintf(buf,"%s", BBSHOST); if( !(urec->userlevel & PERM_BASIC) ) { urec->userlevel = 0; return; } perm = PERM_DEFAULT & sysconf_eval( "AUTOSET_PERM" ); move(1,0); prints(";37;46m 请使用中文回答下列各个问题 m"); while ( strlen( urec->username ) < 2 ) { getdata( 4, 0, "请输入您的昵称 (例如, 可爱的小胖) :", urec->username, NAMELEN,DOECHO,NULL ,YEA); strcpy(uinfo.username,urec->username); update_utmp(); } while ( strlen( urec->realname ) < 4 ) { getdata( 5, 0, "请输入您的真实姓名: (站长会帮您保密的 !) :", urec->realname, NAMELEN-5,DOECHO,NULL,YEA); } while ( strlen( urec->address ) < 15 ) { getdata( 6, 0, "您的住址是 :", urec->address, 55,DOECHO,NULL,YEA); } while ( (urec->sex <1) || (urec->sex >6) ) { move( 7, 0 ); prints("请选择您的种族 (1.人类 2.神族 3.精灵 4.龙族 5.植物 6.矿物) "); getdata(7,66, ": ",genbuf, 2, DOECHO, NULL,YEA ); urec->sex=genbuf[0]-'0'; } wrongdate: while(urec -> byear > 88 || urec -> byear < 40) { ans[0]='\0'; getdata(9,0,"请输入您的出生年份 -四位数-: ",ans,5,DOECHO,NULL,YEA); if (atoi(ans) < 1900) continue; urec -> byear = atoi(ans)-1900; } while(urec -> bmonth < 1 || urec -> bmonth > 12) { ans[0]='\0'; getdata(9,38,"出生月份: (1-12) ",ans,3,DOECHO,NULL,YEA); urec -> bmonth = atoi(ans); } while(urec -> bday < 1 || urec -> bday > 31) { ans[0]='\0'; //i=11 getdata(9,60,"出生日: (1-31) ",ans,3,DOECHO,NULL,YEA); urec -> bday = atoi(ans); } if ((urec->bday ==31) && (urec->bmonth==4 || urec->bmonth==6 || urec->bmonth==9||urec->bmonth==11)) { urec->byear =0; urec->bmonth=0; urec->bday=0; goto wrongdate; } if ((urec->bmonth == 2) && (urec->bday>28)) if ((urec->bday==29) && ((urec->byear)%4)!=0) { urec->byear =0; urec->bmonth=0; urec->bday=0; goto wrongdate; } while ( strchr( urec->email, '@' ) == NULL ) { move( 11, 0 ); //#ifdef PolyU // prints( "您如无 理工大学中央电子邮箱 (@polyu.edu.hk), \n" ); //#else prints( "您如无正式电电子信箱 (如: [email protected]), \n" ); //#endif prints( " 请向电算中心申请 \n"); prints( " 或到本站工具箱中注册个人资料 \n" ); prints( " 通过认证後可以享用很多特别服务哟!! \n" ); move( 15, 0 ); /*#ifdef PolyU prints( "电子信箱格式为: ;[email protected] \n" ); prints( " 请不要忘记您学生证号码里的 ';31mdm' 或 ';31mjm' 啊!" ); #endif*/ getdata( 18, 0, "现在请输入您的有效电邮地址:" , urec->email, 45,DOECHO,NULL,YEA); if ((strchr( urec->email, '@' ) == NULL )) { sprintf( genbuf, "%s.bbs@%s", urec->userid,buf ); strncpy( urec->email, genbuf, STRLEN); } } if(!strcmp(currentuser.userid,"SYSOP")) { currentuser.userlevel=~0; substitute_record(PASSFILE,&currentuser,sizeof(struct userec),usernum); } if(!(currentuser.userlevel&PERM_LOGINOK)) { if( HAS_PERM( PERM_SYSOP )) return; if(!invalid_realmail( urec->userid, urec->realemail, NAMELEN )) { set_safe_record(); urec->userlevel |= PERM_DEFAULT; if( HAS_PERM( PERM_DENYPOST ) && !HAS_PERM( PERM_SYSOP ) ) urec->userlevel &= ~PERM_POST; substitute_record(PASSFILE,urec,sizeof(struct userec),usernum) ; }else { /* added by netty to automatically send a mail to new user. */ /* begin of check if local email-addr */ /* if (duplicate(urec->email)) { move(19,0); prints(";36m你刚才输入的电邮地址 2m(%s)6m 已被他人占用了,\n", urec->email); outs(";36m 请在工具箱内填写你的正确电邮地址,\n"); outs(";36m 你在本站的权力才会进一步提升,如在各板之贴文权、交谈权等等。\n"); outs("m --> ;36m如有任何疑问,请移玉步至 ;31msysop6m 板提问。m"); sprintf( genbuf, "%s.bbs@%s", urec->userid,buf ); strncpy( urec->email, genbuf, STRLEN); pressanykey(NULL); } else */ if ( (!strstr( urec->email, ".bbs@") )&& (!invalidaddr(urec->email))&& (sysconf_str( "EMAILFILE" )!=NULL)&& /*#ifdef PolyU (valid_email(urec->email))) //for PolyU only... #else */ !(invalid_email(urec->email))) //#endif { move( 19, 0 ); prints( "您的电邮地址 尚须通过回信验证... \n" ); prints( " SYSOP 将寄一封验证信给您,\n" ); prints( " 您只要回信, 就可以成为本站合格公民.\n" ); if (askyn("您要我们现在就寄这一封信吗",YEA,NA) == YEA ) { send_regmail(urec); pressanykey("确认信已寄出, 等您回信哦!"); } }else { if(sysconf_str( "EMAILFILE" )!=NULL) { move(19,0); prints("\n你的电子邮件地址 【;33m%sm】\n",urec->email); outs("并非 Unix 帐号,系统不会投递身份确认信,请到;32m工具箱m中修改..\n"); outs(" 你在本站的权力才会进一步提升,如在各板之贴文权、交谈权等等。\n"); outs(" 如有任何疑问,请移玉步至 sysop 板提问。"); pressanykey(NULL); } } } if( urec->lastlogin - urec->firstlogin < 3*86400) { if (urec->numlogins == 1) { sprintf(buf,"tmp/newcomer.%s",currentuser.userid); if ((fout=fopen(buf,"w"))!= NULL) { clear(); fprintf(fout,"大家好,\n\n"); fprintf(fout,"我是 %s (%s), 来自 %s\n" ,currentuser.userid, urec->username, fromhost); fprintf(fout,"今天我初来此站报到, 请大家多多指教。\n"); move(5,0); prints("请作个简短的个人简介, 向本站其他使用者打个招呼\n"); prints("(最多三行, 写完可直接按 <Enter> 跳离)...."); getdata(7,0,":",buf2, 75, DOECHO,NULL, YEA); if(buf2[0]!='\0'){ fprintf(fout,"\n\n自我介绍:\n\n"); fprintf(fout,"%s\n",buf2); getdata(8,0,":",buf2, 75, DOECHO, NULL, YEA); if(buf2[0]!='\0') { fprintf(fout,"%s\n",buf2); getdata(9,0,":",buf2, 75, DOECHO, NULL, YEA); if(buf2[0]!='\0') { fprintf(fout,"%s\n",buf2); } } } fclose(fout); sprintf(buf2,"新手上路 - %s", currentuser.username); add_loginfo(buf); postfile(buf,"newcomers",buf2,2); unlink(buf); } pressanykey(NULL); } } } newregfile = sysconf_str( "NEWREGFILE" ); if( urec->lastlogin - urec->firstlogin < 3*86400 && !HAS_PERM( PERM_SYSOP) && newregfile != NULL ) { set_safe_record(); urec->userlevel &= ~(perm); substitute_record(PASSFILE,urec,sizeof(struct userec),usernum) ; ansimore( newregfile, YEA ); } set_safe_record(); if( HAS_PERM( PERM_DENYPOST ) && !HAS_PERM( PERM_SYSOP ) ) { currentuser.userlevel &= ~PERM_POST; substitute_record(PASSFILE,urec,sizeof(struct userec),usernum) ; } } -- ※ Origin: 元智大学 风之塔 <bbs.yzu.edu.tw> ※ From : 61-231-194-182.dynamic.hinet.net







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草
伺服器连线错误,造成您的不便还请多多包涵!
「赞助商连结」






like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP