自动通过身份验证的方法,我写个我觉得可以的办法吧。
我站上有个绿色通道,差不多的办法。
WWW这边
bbs2www/phplib/phpbbslib.c 的 bbs_createregform() 函数
注意有两个这样的函数,根据WFORUM常量的定义选择需要更改的那个。
在#ifdef NEW_COMERS ... #endif 那段之后,加上
if (auto_register(userid) == 0) {
uc->userlevel |= PERM_DEFAULT;
RETURN_LONG(922); //922是我lp的生日
}
auto_register()在site.c里面定义,可以什么都不判断直接返回0
表示所有的用户都可以自动通过身份验证。
bbs2www/html/下面的bbsreg.php和bbsfillform.php里面
最后面switch(ret)的地方针对返回值922显示“您通过认证了”。
题外话,上面那两个php里面,如果调用bbs_createregform()的地方最后
一个参数写FALSE,就可以保证WWW注册直接进new_register不用
pre_register,也不用在crontab里面加cnv_register。
telnet这边,可以这么干
src/register.c check_register_info() 函数的最后,加上
if (HAS_PERM(currentuser, PERM_LOGINOK)) return;
x_fillform();
x_fillform()是在src/userinfo.c里面定义的。你可以在这个函数里面这句话
if ((fn = fopen("new_register", "a")) != NULL) {
之前加上
if (auto_register(currentuser->userid) == 0) {
currentuser->userlevel |= PERM_DEFAULT;
显示一下您已经自动通过认证,然后按任意键继续
return;
}
供参考,上面的WWW部分我能保证是对的,因为我站上的绿色通道就是类似这么
做的。telnet这边,我没试验过。写都很匆忙,你要成功了写个HOWTO上来可否?
--