//Jing Chen //attr.c #include #include #include #include #include #define SIZE 150 #define filename "../greport.txt" void out_page(char *file) /* output a html page to the browser */ { FILE *f; char line[300]; if ( (f=fopen(file,"rt"))==NULL ) { printf("Unable to open html file %s",file); exit(1); } while (! feof(f) ) { fgets(line,sizeof(line),f); printf("%s\n",line); } fclose(f); } /*----------------------------------- MAIN -----------------------------------*/ void main(void) { int j,i=0,finish=0; FILE *f; char line[SIZE],item[10],*temp; char *lenstr; char data[SIZE]; long len; lenstr = getenv("CONTENT_LENGTH"); if(lenstr == NULL || sscanf(lenstr,"%ld",&len)!=1 ) { printf(" Input error "); exit(1); } fgets(data, len+1, stdin); printf("Content-type: text/html%c%c",10,10); if ( strstr(data,"distr")!=NULL ) /* goto distribution.html */ { out_page("../distribution.htm"); } else if ( strstr(data,"attr")!=NULL ) /* List all the attributes */ { printf("\n") ; printf("Attribute\n") ; printf("\n") ; if ( (f=fopen(filename,"rt"))==NULL ) { printf("Unable to open data file : greport\n"); exit(1); } printf("


"); printf("Which assignment or exam would you like to see ?

"); printf("
"); printf("
"); /* printf(""); printf(""); printf(""); */ fgets(line,sizeof(line),f); fgets(line,sizeof(line),f); while (!finish) { j=0; while ((line[i]!=',' )&& (line[i]!=';')&& (!finish) ) { if ( line[i]==')' ) finish=1; else if (line[i]!=' ') { item[j]=line[i]; j++;i++; } else { i++; } } item[j]=0; if ( (temp=strstr(item,"="))!=NULL ) { (*temp)=0; printf(""); printf("",item,item); printf(""); } i++; } fclose(f); printf("
Please Display All
%s
"); printf("

"); printf("
"); printf("\n") ; printf("\n") ; } }