bbsfwd.c
来自「bbs server linux平台下软件源码」· C语言 代码 · 共 93 行
C
93 行
/* * $Id: bbsfwd.c,v 1.15 2003/04/09 07:57:40 binxun Exp $ */#include "bbslib.h"/*void debug_abort(int signo){ abort();}*/int main(){ struct fileheader x; char board[80], file[80], target[80]; struct userec *u = NULL; int big5; int noansi; struct boardheader bh; struct userdata ud; init_all(); strsncpy(board, getparm("board"), 30); strsncpy(file, getparm("file"), 30); strsncpy(target, getparm("target"), 70); big5 = atoi(getparm("big5")); noansi = atoi(getparm("noansi")); if (!loginok) http_fatal("匆匆过客不能进行本项操作"); if (getboardnum(board, &bh) == 0 || !check_read_perm(currentuser, &bh)) http_fatal("错误的讨论区"); if (get_file_ent(board, file, &x) == 0) http_fatal("错误的文件名"); printf("<center>%s -- 转寄/推荐给好友 [使用者: %s]<hr color=\"green\">\n", BBSNAME, currentuser->userid); if (target[0]) { if (!strchr(target, '@')) { if (HAS_PERM(currentuser, PERM_DENYMAIL)) http_fatal("你无权给本站用户转信!"); if (getuser(target, &u) == 0) http_fatal("错误的使用者帐号"); strcpy(target, u->userid); big5 = 0; noansi = 0; } return do_fwd(&x, board, target, big5, noansi); } read_userdata(currentuser->userid, &ud); printf("<table><tr><td>\n"); printf("文章标题: %s<br>\n", nohtml(x.title)); printf("文章作者: %s<br>\n", x.owner); printf("原讨论区: %s<br>\n", board); printf("<form action=\"bbsfwd\" method=\"post\">\n"); printf("<input type=\"hidden\" name=\"board\" value=\"%s\">", board); printf("<input type=\"hidden\" name=\"file\" value=\"%s\">", file); printf("把文章转寄给 <input type=\"text\" name=\"target\" size=\"40\" maxlength=\"69\" value=\"%s\"> (请输入对方的id或email地址). <br>\n", ud.email); printf("<input type=\"checkbox\" name=\"big5\" value=\"1\"> 使用BIG5码<br>\n"); printf("<input type=\"checkbox\" name=\"noansi\" value=\"1\" checked> 过滤ANSI控制符<br>\n"); printf("<input type=\"submit\" value=\"确定转寄\"></form>"); return 0;}int do_fwd(struct fileheader *x, char *board, char *target, int big5, int noansi){ char title[512], path[200]; int rv; sprintf(path, "boards/%s/%s", board, x->filename); if (!file_exist(path)) http_fatal("文件内容已丢失, 无法转寄"); sprintf(title, "%.50s(转寄)", x->title); if (!strchr(target, '@')) { /* * post_mail(target, title, path, currentuser->userid, * currentuser->username, fromhost, -1); */ mail_file(getcurruserid(), path, target, title, 0, NULL); printf("文章已转寄给'%s'<br>\n", nohtml(target)); rv = 0; } else { if (big5 == 1) conv_init(); if (bbs_sendmail(path, title, target, 0, big5, noansi) == 0) { printf("文章已转寄给'%s'<br>\n", nohtml(target)); rv = 0; } else { printf("转寄失败\n", nohtml(target)); rv = -1; } } printf("[<a href=\"javascript:history.go(-2)\">返回</a>]"); return rv;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?