]> git.ipfire.org Git - thirdparty/sarg.git/blobdiff - topuser.c
Sanitized a little bit the generated HTML.
[thirdparty/sarg.git] / topuser.c
index ad976f7d55c9f3abfc571c0fb781ce1adc5291a8..f5fd988a33988a3d0f602c5f0813987f720856d3 100644 (file)
--- a/topuser.c
+++ b/topuser.c
@@ -54,6 +54,12 @@ void topuser(void)
    char warea[1500];
    char user2[MAXLEN];
    char name[MAXLEN];
+   char href1[MAXLEN];
+   char href2[MAXLEN];
+   char href3[MAXLEN];
+   char href1end[5];
+   char href2end[5];
+   char href3end[5];
 
    ipantes[0]='\0';
    nameantes[0]='\0';
@@ -248,16 +254,15 @@ void topuser(void)
    fclose(fp_in);
 
    fprintf(fp_top3, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html>\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\">\n",CharSet);
-   fputs("</head>\n",fp_top3);
    css(fp_top3);
-   fprintf(fp_top3,"<body class=\"body\">");
-   if(strlen(LogoImage) > 0) fprintf(fp_top3, "<center><table cellpadding=\"0\" cellspacing=\"0\">\n<tr><th class=\"logo\"><img src='%s' border=0 align=absmiddle width=%s height=%s>&nbsp;%s</th></tr>\n<tr><td height=\"5\"></td></tr>\n</table>\n",LogoImage,Width,Height,LogoText);
+   fprintf(fp_top3,"</head>\n<body class=\"body\">");
+   write_logo_image(fp_top3);
 
    if(strcmp(IndexTree,"date") == 0)
       show_sarg(fp_top3, "../../..");
    else
       show_sarg(fp_top3, "..");
-   fputs("<center><table cellpadding=\"0\" cellspacing=\"0\">\n",fp_top3);
+   fputs("<div align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\">\n",fp_top3);
    fprintf(fp_top3,"<tr><th align=\"center\" class=\"title\">%s</th></tr>\n",Title);
 
    fprintf(fp_top3,"<tr><td class=\"header3\">%s: %s</td></tr>\n",text[89],period);
@@ -269,18 +274,18 @@ void topuser(void)
    fprintf(fp_top3,"<tr><td class=\"header3\">%s</td></tr>\n",wheader);
    fprintf(fp_top3,"<tr><th class=\"header3\">%s</th></tr>\n",text[137]);
 
-   fputs("</table></center>\n",fp_top3);
-   fputs("<center><table cellpadding=\"1\" cellspacing=\"2\">\n",fp_top3);
+   fputs("</table></div>\n",fp_top3);
+   fputs("<div align=\"center\"><table cellpadding=\"1\" cellspacing=\"2\">\n",fp_top3);
    fputs("<tr><td><br></td><td></td></tr>\n",fp_top3);
 
-   if(strstr(ReportType,"topsites") != 0 && strcmp(Privacy,"yes") != 0) fprintf(fp_top3,"<tr><td class=\"link\" colspan=11><a href=\"topsites.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[119]);
-   if(strstr(ReportType,"sites_users") != 0 && strcmp(Privacy,"yes") != 0) fprintf(fp_top3,"<tr><td class=\"link\" colspan=11><a href=\"siteuser.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[85]);
-   if(dansguardian_count) fprintf(fp_top3,"<tr><td class=\"link\" colspan=11><a href=\"dansguardian.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[128]);
+   if(strstr(ReportType,"topsites") != 0 && strcmp(Privacy,"yes") != 0) fprintf(fp_top3,"<tr><td class=\"link\" colspan=\"11\"><a href=\"topsites.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[119]);
+   if(strstr(ReportType,"sites_users") != 0 && strcmp(Privacy,"yes") != 0) fprintf(fp_top3,"<tr><td class=\"link\" colspan=\"11\"><a href=\"siteuser.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[85]);
+   if(dansguardian_count) fprintf(fp_top3,"<tr><td class=\"link\" colspan=\"11\"><a href=\"dansguardian.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[128]);
    if(squidguard_count) fprintf(fp_top3,"<tr><td class=\"link\" colspan=11><a href=\"squidguard.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[122]);
-   if (strstr(ReportType,"downloads") != 0 && download_count && strcmp(Privacy,"yes") != 0 && ndownload) fprintf(fp_top3,"<tr><td class=\"link\" colspan=11><a href=\"download.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[125]);
-   if (strstr(ReportType,"denied") != 0 && denied_count && strcmp(Privacy,"yes") != 0) fprintf(fp_top3,"<tr><td class=\"link\" colspan=11><a href=\"denied.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[118]);
-   if (strstr(ReportType,"auth_failures") != 0 && authfail_count && strcmp(Privacy,"yes") != 0) fprintf(fp_top3,"<tr><td class=\"link\" colspan=11><a href=\"authfail.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[117]);
-   if(smartfilter) fprintf(fp_top3,"<tr><td class=\"link\" colspan=11><a href=\"smartfilter.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[116]);
+   if (strstr(ReportType,"downloads") != 0 && download_count && strcmp(Privacy,"yes") != 0 && ndownload) fprintf(fp_top3,"<tr><td class=\"link\" colspan=\"11\"><a href=\"download.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[125]);
+   if (strstr(ReportType,"denied") != 0 && denied_count && strcmp(Privacy,"yes") != 0) fprintf(fp_top3,"<tr><td class=\"link\" colspan=\"11\"><a href=\"denied.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[118]);
+   if (strstr(ReportType,"auth_failures") != 0 && authfail_count && strcmp(Privacy,"yes") != 0) fprintf(fp_top3,"<tr><td class=\"link\" colspan=\"11\"><a href=\"authfail.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[117]);
+   if(smartfilter) fprintf(fp_top3,"<tr><td class=\"link\" colspan=\"11\"><a href=\"smartfilter.html\"><font class=\"link\">%s</font></a><font class=\"text\"></font></td></tr>\n",text[116]);
    fputs("<tr><td></td></tr>\n",fp_top3);
 
    if (strstr(ReportType,"topuser") == 0) {
@@ -384,22 +389,30 @@ void topuser(void)
          ouperc=((ouperc * 100) / tnbytes);
       } else ouperc = 0;
 
-      strcpy(href," ");
-      strcpy(href2," ");
-      strcpy(href3," ");
-
       if(strcmp(user,"TOTAL") != 0){
-         sprintf(href,"<a href='%s/",user);
-         sprintf(href2,"<a href='%s/d",user);
-         sprintf(href3,"<a href='%s/graph_day.png'>",user);
-         strcat(href,user);
+         sprintf(href1,"<a href=\"%s/",user);
+         strcpy(href1end,"</a>");
+         sprintf(href2,"<a href=\"%s/d",user);
+         strcpy(href2end,"</a>");
+         sprintf(href3,"<a href=\"%s/graph_day.png\">",user);
+         strcpy(href3end,"</a>");
+         strcat(href1,user);
          strcat(href2,user);
-         strcat(href,".html'>");
-         strcat(href2,".html'>");
+         strcat(href1,".html\">");
+         strcat(href2,".html\">");
+      } else {
+         strcpy(href1," ");
+         strcpy(href1end,"");
+         strcpy(href2," ");
+         strcpy(href2end,"");
+         strcpy(href3," ");
+         strcpy(href3end,"");
       }
 
-      if(strcmp(Graphs,"yes") != 0)
+      if(strcmp(Graphs,"yes") != 0) {
          bzero(href3,MAXLEN);
+         strcpy(href3end,"");
+      }
 
       posicao++;
 
@@ -415,13 +428,14 @@ void topuser(void)
             } else strcpy(user2,nameantes);
          }
       }
-    
+
       if(strstr(ReportType,"date_time") != 0) {
          sprintf(ltext110,"%s",text[110]);
          for(s=ltext110; *s; ++s)
             *s=tolower(*s);
       } else {
          bzero(href2, MAXLEN);
+         href2end[0]='\0';
          bzero(ltext110, 50);
          sprintf(val1,"%s/d%s.html",dirname,user);
          unlink(val1);
@@ -444,9 +458,9 @@ void topuser(void)
 
       sprintf(val1,"%d",posicao);
 #ifdef HAVE_GD
-      sprintf(val2,"%s<img src=\"%s/graph.png\" border=\"0\" title=\"%s\"></a>&nbsp;%s<img src=\"%s/datetime.png\" border=\"0\" title=\"%s %s\">\n",href3,ImageFile,text[126],href2,ImageFile,ltext110,text[55]);
+      sprintf(val2,"%s<img src=\"%s/graph.png\" border=\"0\" title=\"%s\" alt=\"G\">%s&nbsp;%s<img src=\"%s/datetime.png\" border=\"0\" title=\"%s %s\" alt=\"T\">%s\n",href3,ImageFile,text[126],href3end,href2,ImageFile,ltext110,text[55],href2end);
 #else
-      sprintf(val2,"%s<img src=\"%s/datetime.png\" border=\"0\" title=\"%s\">\n",href2,ImageFile,ltext110);
+      sprintf(val2,"%s<img src=\"%s/datetime.png\" border=\"0\" title=\"%s\" alt=\"T\">%s\n",href2,ImageFile,ltext110,href2end);
 #endif
 
       sprintf(val3,"%3.2f%%",perc);
@@ -508,14 +522,16 @@ void topuser(void)
          bzero(hbc10, 30);
       }
 
-      if(strstr(ReportType,"users_sites") == 0)
-         href[0]='\0';
+      if(strstr(ReportType,"users_sites") == 0) {
+         href1[0]='\0';
+         href1end[0]='\0';
+      }
 
       if(dotinuser && strchr(name,'_')) {
          subs(name,sizeof(name),"_",".");
       }
 
-      sprintf(preg,"<tr><td %s>%s</td><td %s>%s</td><td %s>%s%s</td><td %s>%s</td><td %s>%s</td><td %s>%s</td><td %s>%s</td><td %s>%s</td><td %s>%s</td><td %s>%s<td %s>%s</td></tr>\n",hbc1,val1,hbc2,val2,hbc2,href,name,hbc3,wwork1,hbc4,wwork2,hbc5,val3,hbc6,val4,hbc7,val5,hbc8,val6,hbc9,wwork3,hbc10,val7);
+      sprintf(preg,"<tr><td %s>%s</td><td %s>%s</td><td %s>%s%s%s</td><td %s>%s</td><td %s>%s</td><td %s>%s</td><td %s>%s</td><td %s>%s</td><td %s>%s</td><td %s>%s<td %s>%s</td></tr>\n",hbc1,val1,hbc2,val2,hbc2,href1,name,href1end,hbc3,wwork1,hbc4,wwork2,hbc5,val3,hbc6,val4,hbc7,val5,hbc8,val6,hbc9,wwork3,hbc10,val7);
 
       if(strstr(user,"TOTAL") != 0) {
 
@@ -626,10 +642,10 @@ void topuser(void)
    if(strlen(UserAgentLog) > 0) {
       fputs("<tr><td></td></tr>\n",fp_top3);
       fputs("<tr><td></td></tr>\n",fp_top3);
-      fputs("<td align=\"left\" colspan=8><font size=-1><a href='useragent.html'>Useragent</a> Report</td>\n",fp_top3);
+      fputs("<td align=\"left\" colspan=\"8\"><font size=-1><a href='useragent.html'>Useragent</a> Report</td>\n",fp_top3);
    }
 
-   fputs("</table></center>",fp_top3);
+   fputs("</table></div>",fp_top3);
 
    show_info(fp_top3);