Ejemplo n.º 1
0
int show_file(char *board, struct fileheader *x, int n)
{
        FILE *fp;
        char path[80], buf[512];
        if(loginok)
                brc_add_read(x->filename);
        sprintf(path, "boards/%s/%s", board, x->filename);
        fp=fopen(path, "r");
        if(fp==0)
                return;
        printf("<table width=600  style='BORDER: 1px solid; BORDER-COLOR: 65c8aa;'  cellpadding=4 cellspacing=0  align=center><tr><td>\n");
        printf("[<a href=bbscon?board=%s&file=%s&num=%d>本篇全文</a>] ", board, x->filename, n);
        printf("[<a href='bbspst?board=%s&file=%s&title=%s&userid=%s'>回复本文</a>] ",
               board, x->filename, x->title, x->owner);
        printf("[本篇作者: %s] ", userid_str(x->owner));
        printf("<a href=bbsdoc?board=%s>本讨论区</a>",board);
        printf("</td></tr><tr><td style='font-size:14px'><pre>\n");
        while(1)
        {
                /*
                if(fgets(buf, 500, fp)==0) break;
                if(!strncmp(buf, ": ", 2)) continue;
                if(!strncmp(buf, "【 在 ", 4)) continue;
                //		if(!strncmp(buf, "--", 2)) break;
                hhprintf("%s", buf);
                 */
                if(fgets(buf, 500, fp)==0)
                        break;
                if(!strcmp(board,"Pictures") || !strcmp(board,"SelfPhoto") ) {
                        if(!strncmp(buf, ": ", 2))
                                continue;
                        if(!strncmp(buf, "【 在 ", 4))
                                continue;
                        if(!strncmp(buf, "--", 2))
                                break;
                        hhprintf("%s", buf);
                        continue;
                }
                if(!strncmp(buf, ": ", 2))
                        printf("<font color=808080>");
                hhprintf("%s", buf);
                if(!strncmp(buf, ": ", 2))
                        printf("</font>");

        }
        fclose(fp);
        printf("</table></pre>");
        //	printf("<table width=100%% bgcolor=#65c8aa border=0 cellpadding=0 cellspacing=0 height=1><tr><td></table>");
        return 1;
}
Ejemplo n.º 2
0
/*
mode=0 text
mode=1 html
*/
int morefile(char *file ,int mode)
{
        int i;
        char path[256];
        sprintf(path, "boards/%s/%s", bd->filename, file);
        FILE *fp=fopen(path, "r");
        if(fp==0)
                return 0;
        if(mode==1){
       	     while(1){
                if(fgets(buf, 256, fp)==0)   break;
                hhprintf("%s", noansi(buf));
                printf("<br />");
             }
        }else{
          for(i=0;i<8;i++){
              if(fgets(buf, 256, fp)==0) break; 
              if(!strcmp(buf,"--\n")) break;
              if(i>3){
                 printf("%s",xmlsafestr(noansi(buf)));
                 printf("<br />");
             }
          }
        }

        out:
        fclose(fp);
        return 0;
}
Ejemplo n.º 3
0
int main() {
	struct user_doccount *udcount,*udcounthead;
	
	FILE *fp,*fpfile;
	struct fileheader *data;
	char buf[512];

	int type=0,docstart,docend,total,i,docmin;
	char dir[80],  board[80], userid[80];
	struct boardheader *brd;
	struct fileheader x;
	init_all();

	/* added by roly  2002.05.10 去掉cache */
	printf("<meta http-equiv=\"pragma\" content=\"no-cache\">");
	printf("<title>信件下载</title><body>");
	/* add end */

	if(!loginok)
	{
		printf("<b>信件下载 · %s</b><br>\n",BBSNAME);
		printpretable_lite();
		http_fatal("您尚未登录, 请先登录");
	}
	printf("<b>信件下载 · %s</b><br>\n", BBSNAME);
	type=atoi(getparm("type"));
	
	if(type==0) return show_form();	
	
    docstart=atoi(getparm("start"));
    docend=atoi(getparm("end"));	
	sprintf(dir, "mail/%c/%s/.DIR", toupper(currentuser.userid[0]), currentuser.userid);
   	total=file_size(dir)/sizeof(struct fileheader);
	
        
	if(docstart<=0) docstart=1;
	if(docend<=0 || docend>total) docend=total;
	
        
	//printf("docstart:%d,docend:%d",docstart,docend);

	data=(struct fileheader *)calloc(total, sizeof(struct fileheader));
   	if(data==0) 
		http_fatal("memory overflow");
	fp=fopen(dir, "r");
	if(fp==0) 
		http_fatal("dir error");
	total=fread(data, sizeof(struct fileheader), total, fp);
	printpretable_lite();
	if(fp)
	{
		int i,filetime;
		char path[STRLEN];
		printf("<ol>\n");
		for (i=docstart-1	;i<docend;i++) 
		{
			filetime=atoi(data[i].filename+2);   
			//added by iamfat 2002.08.10
			//check_anonymous(data[i].owner);
			//added end.
			printf("<LI><A href=#%s>%s:(%12.12s) %s</A>\n",data[i].filename,data[i].owner,Ctime(filetime)+4,data[i].title);
		}
		printf("</ol>\n");
		for (i=docstart-1;i<docend;i++) 
		{
			printf("<a name=%s></a>",data[i].filename); //,data[i].title);	
			printpretable();
			printf("<table width=100%% border=0>\n");
			printf("<pre class=ansi>");
			sprintf(path, "mail/%c/%s/%s", toupper(currentuser.userid[0]), currentuser.userid, data[i].filename);
			//printf(path);
			fpfile=fopen(path, "r");
			if(fpfile==0) 
			{
				printf("本文不存在或者已被删除!");
				printf("</pre></table>\n");
				printposttable();
				continue;
			}
			while(1) 
			{
				if(fgets(buf, 512, fpfile)==0) 
					break;
				hhprintf("%s", buf);
			}
			fclose(fpfile);
			printf("</pre></table>\n");
			printposttable();
		}	
      }
	  fclose(fp);
	  printf("</body>\n");
	  http_quit();
}