|
||||
1 : #!/bin/wel¢Ò 2 : ¢Ò 3 : /* viewstat.wel¢Ò 4 : ¢Ò 5 : Åë°è ±â·Ï ¸·´ë ±×·¡ÇÁ º¸±â(¼±¤Çö)¢Ò 6 : ¢Ò 7 : ¼öÁ¤: 2000/12/29¢Ò 8 : ¢Ò 9 : */¢Ò 10 : ¢Ò 11 : function dump_login(string msg)¢Ò 12 : {¢Ò 13 : /"<html>¢Ò 14 : <body bgcolor={$Qbcolor} onLoad='document.input.Qpasswd.focus()'>¢Ò 15 : <center>¢Ò 16 : <br>¢Ò 17 : <table border=2 cellspacing=0 width=540 bgcolor=#c0c0c0>¢Ò 18 : <tr><td>¢Ò 19 : <table border=1 cellspacing=1 bgcolor=#d0d0d0 width=100%>¢Ò 20 : <tr><td align=center bgcolor=#000080>¢Ò 21 : <font color=#ffffff><b>¹æ¹® Åë°è ±×·¡ÇÁ º¸±â</b></font></td></tr>¢Ò 22 : <tr><td height=150>¢Ò 23 : <table border=0 cellspacing=0 width=100%>¢Ò 24 : <form name='input' method='POST' action='viewstat.wel'>¢Ò 25 : <tr><td width=50% align=right><b>µ¥ÀÌÅͺ£À̽º¸í: </b></td>¢Ò 26 : <td><input type=text name='Qdb' value='{$Qdb}' width=16></td></tr>¢Ò 27 : <tr><td width=50% align=right><b>Å× ÀÌ ºí ¸í: </b></td>¢Ò 28 : <td><input type=text name='Qtable' value='{$Qtable}' width=16></td></tr>¢Ò 29 : <tr><td width=50% align=right><b>¾Ï È£: </b></td>¢Ò 30 : <td><input type=password name='Qpasswd' value='' width=16></td></tr>¢Ò 31 : <tr><td colspan=2 align=center>{$msg} </td></tr>¢Ò 32 : <tr><td colspan=2 align=center>¢Ò 33 : <input type='submit' value=' ±â ·Ï º¸ ±â '></td></tr>¢Ò 34 : </table></td></tr></form>¢Ò 35 : </table>¢Ò 36 : <table border=1 cellspacing=1 bgcolor=#d0d0d0 width=100%>¢Ò 37 : <tr><td align=center bgcolor=#000080>¢Ò 38 : <font color=#ffffff><b>Query º¯¼ö ¼³¸í</b></font></td></tr>¢Ò 39 : <tr><td>¢Ò 40 : <table border=0 cellspacing=0 width=100%>¢Ò 41 : <tr><td><pre><font size=2>¢Ò 42 : Qhost -----> ¿¬°áÇÒ mSQL ¼¹öÀÇ ÁÖ¼Ò(ÃʱⰪ: {$Qhost})¢Ò 43 : Qdb -------> data base name(ÃʱⰪ: {$Qdb})¢Ò 44 : Qtable ----> table name(ÃʱⰪ: {$Qtable})¢Ò 45 : Qlevel ----> ¸·´ë ±×·¡ÇÁÀÇ ´«±Ý¼ö(1¿¡¼ 20±îÁö ¹üÀ§, ÃʱⰪ: {$Qlevel})¢Ò 46 : Qdot ------> ¸·´ë ±×·¡ÇÁÀÇ ´«±ÝÀÇ Å©±â(pixel´ÜÀ§, ÃʱⰪ: {$Qdot})¢Ò 47 : Qrefresh --> ºÐ´ÜÀ§ÀÇ °»½Å ÁÖ±â(0À̸é refreshÇÏÁö ¾ÊÀ½, ÃʱⰪ: {$Qbcolor})¢Ò 48 : Qbcolor ---> º»¹®ÀÇ ¹è°æ»ö(ÃʱⰪ: {$Qbcolor})¢Ò 49 : Qtext -----> º»¹®ÀÇ ±ÛÀÚ»ö(ÃʱⰪ: {$Qtext})¢Ò 50 : Qpasswd ---> ¾ÏÈ£</font></pre>¢Ò 51 : </table></td></tr>¢Ò 52 : </table></td></tr>¢Ò 53 : </table>¢Ò 54 : </center>¢Ò 55 : </body>¢Ò 56 : </html>¢Ò 57 : "/¢Ò 58 : return;¢Ò 59 : }¢Ò 60 : ¢Ò 61 : function print_style()¢Ò 62 : {¢Ò 63 : print("<style type='text/css'><!-- \n",¢Ò 64 : "#tr { font-size:8pt; font-family:'±¼¸²'; letter-spacing:-1; color:#000000; padding-top:1px; padding-right:1px; }\n",¢Ò 65 : "#td { text-align: center; font-size:",Qdot,"px; padding-top:2px; }\n",¢Ò 66 : "#f1 { background-color:#f00000;font-size:",Qdot,"px; line-height:",Qdot+2,"px; }\n",¢Ò 67 : "#f2 { background-color:#000080;font-size:",Qdot,"px; line-height:",Qdot+2,"px; }\n",¢Ò 68 : "#f3 { background-color:#c0c0c0;font-size:",Qdot,"px; line-height:",Qdot+2,"px; }\n",¢Ò 69 : " --></style>\n");¢Ò 70 : return;¢Ò 71 : }¢Ò 72 : ¢Ò 73 : function Print_BarGraph(string title, string arrayname, int snumber, int enumber, int highlight)¢Ò 74 : {¢Ò 75 : max= min= parser(arrayname~"[snumber]");¢Ò 76 : for(i=snumber+1; i<=enumber; i++)¢Ò 77 : {¢Ò 78 : cnt= parser(arrayname~"[i]");¢Ò 79 : if(cnt>max) max= cnt;¢Ò 80 : else if(cnt<min) min= cnt;¢Ò 81 : }¢Ò 82 : range= max - min;¢Ò 83 : print("<font size=3 color=#ff5050><b>", title, "</b></font><br>\n");¢Ò 84 : print("<table border=1 cellspacing=0 bgcolor=#f0f0f0 width=100%><tr><td>");¢Ò 85 : print("<table border=1 cellspacing=0 cellpadding=0 width=100%>\n");¢Ò 86 : if(range==0) bar= 0;¢Ò 87 : if(Qlevel<1 || Qlevel>20) Qlevel= 10;¢Ò 88 : print("<tr>\n");¢Ò 89 : for(i=snumber; i<=enumber; i++)¢Ò 90 : {¢Ò 91 : print("<td id=td>");¢Ò 92 : if(range>0) bar= real(parser(arrayname~"[i]")-min) / range * Qlevel;¢Ò 93 : if(bar<Qlevel)¢Ò 94 : {¢Ò 95 : print("<font id=f3>");¢Ò 96 : for(j=Qlevel; j>bar; j--) print(" <br>");¢Ò 97 : print("</font>");¢Ò 98 : }¢Ò 99 : if(bar>0)¢Ò 100 : {¢Ò 101 : if(i==highlight) fkind= "f1"; else fkind= "f2";¢Ò 102 : print("<font id=", fkind, ">");¢Ò 103 : for(j=bar; j>=1; j--) print(" <br>");¢Ò 104 : print("</font>");¢Ò 105 : }¢Ò 106 : print("</td>\n");¢Ò 107 : }¢Ò 108 : print("</tr>\n");¢Ò 109 : print("<tr align=center bgcolor=#e8e450 id=tr>");¢Ò 110 : for(i=snumber; i<=enumber; i++)¢Ò 111 : {¢Ò 112 : print("<td>");¢Ò 113 : if(i!=highlight) print(name[i]);¢Ò 114 : else print("<font color=red>", name[i], "</font>");¢Ò 115 : print("</td>");¢Ò 116 : }¢Ò 117 : print("</tr>\n<tr align=center bgcolor=#50d090 id=tr>");¢Ò 118 : for(i=snumber; i<=enumber; i++)¢Ò 119 : {¢Ò 120 : print("<td>");¢Ò 121 : if(i!=highlight) print(parser(arrayname~"[i]"));¢Ò 122 : else print("<font color=red>", parser(arrayname~"[i]"), "</font>");¢Ò 123 : print("</td>");¢Ò 124 : }¢Ò 125 : print("</tr>\n</table>\n</td></tr></table>\n");¢Ò 126 : return;¢Ò 127 : }¢Ò 128 : ¢Ò 129 : free name[31];¢Ò 130 : int dcnt[31], hcnt[23], wcnt[6];¢Ò 131 : ¢Ò 132 : function int dump_graph()¢Ò 133 : {¢Ò 134 : qstr= "select * from " ~ Qtable;¢Ò 135 : socket= msqlConnect(Qhost);¢Ò 136 : if(socket==MSQL_ERR)¢Ò 137 : {¢Ò 138 : print("mSQL ¼¹ö '", Qhost, "'¸¦ ¿¬°áÇÒ ¼ö ¾ø½À´Ï´Ù!!!\n");¢Ò 139 : return(-1);¢Ò 140 : }¢Ò 141 : if(msqlSelectDB(socket, Qdb)==MSQL_ERR)¢Ò 142 : {¢Ò 143 : print("µ¥ÀÌÅÍ º£À̽º '", Qdb,"'¸¦ °³¹æÇÒ ¼ö ¾ø½À´Ï´Ù!!!\n");¢Ò 144 : return(-1);¢Ò 145 : }¢Ò 146 : if(msqlQuery(socket, qstr)==MSQL_ERR)¢Ò 147 : {¢Ò 148 : print("Query ¿¡·¯: ", qstr, "\n");¢Ò 149 : return(-1);¢Ò 150 : }¢Ò 151 : ¢Ò 152 : result= msqlStoreResult();¢Ò 153 : fields_count= msqlNumFields(result);¢Ò 154 : row= msqlFetchRow(result);¢Ò 155 : ¢Ò 156 : di= hi= wi= 0;¢Ò 157 : for(j=0; j<fields_count; j++)¢Ò 158 : {¢Ò 159 : if(j<=31) dcnt[di++]= row[j];¢Ò 160 : else if(j<=55) hcnt[hi++]= row[j];¢Ò 161 : else if(j<=62) wcnt[wi++]= row[j];¢Ò 162 : else if(j==63) total= row[j];¢Ò 163 : else if(j==64) fdate= row[j];¢Ò 164 : else if(j==65) ldate= row[j];¢Ò 165 : }¢Ò 166 : msqlFreeResult(result);¢Ò 167 : msqlClose(socket);¢Ò 168 : ¢Ò 169 : server= getenv("SERVER_NAME");¢Ò 170 : cy= iyear(), cm= imonth(), cd= iday();¢Ò 171 : print("<font color=#f0f000><b>http://", server, "</b></font>");¢Ò 172 : print("<font size=2>(", date(3), " ", time(3), ")</font><br>\n");¢Ò 173 : ¢Ò 174 : print("<table border=0 cellspacing=10><tr align=center><td colspan=2 nowrap>");¢Ò 175 : ¢Ò 176 : first= left(fdate,4) ~ "/" ~ mid(fdate,5,2) ~ "/" ~ mid(fdate,7,2)¢Ò 177 : ~ "-" ~ mid(fdate,9,2) ~ ":" ~ mid(fdate,11,2) ~ ":" ~ mid(fdate,13);¢Ò 178 : last= left(ldate,4) ~ "/" ~ mid(ldate,5,2) ~ "/" ~ mid(ldate,7,2)¢Ò 179 : ~ "-" ~ mid(ldate,9,2) ~ ":" ~ mid(ldate,11,2) ~ ":" ~ mid(ldate,13);¢Ò 180 : title= "ÀÏÀÚº° Á¢¼ÓÅë°è<font color=#f0f000>(ÃÑ "¢Ò 181 : ~ total ~ "°Ç, </b><font size=2>"¢Ò 182 : ~ first ~ "ºÎÅÍ " ~ last ~ "±îÁö</font><b>)</font>";¢Ò 183 : arrayname= "dcnt", snumber= 1, enumber= 31, highlight= cd;¢Ò 184 : for(i=snumber; i<=enumber; i++) name[i]= i;¢Ò 185 : Print_BarGraph(title, arrayname, snumber, enumber, highlight);¢Ò 186 : ¢Ò 187 : print("</td></tr>\n<tr align=center><td nowrap>");¢Ò 188 : ¢Ò 189 : title= "½Ã°£´ëº° Á¢¼ÓÅë°è";¢Ò 190 : arrayname= "hcnt", snumber= 0, enumber= 23, highlight= left(time(0),2);¢Ò 191 : for(i=snumber; i<=enumber; i++) name[i]= i;¢Ò 192 : Print_BarGraph(title, arrayname, snumber, enumber, highlight);¢Ò 193 : ¢Ò 194 : print("</td><td nowrap>");¢Ò 195 : ¢Ò 196 : title= "¿äÀϺ° Á¢¼ÓÅë°è", week= "ÀÏ¿ùȼö¸ñ±ÝÅä";¢Ò 197 : arrayname= "wcnt", snumber= 0, enumber= 6, highlight= iweek(cy, cm, cd);¢Ò 198 : for(i=snumber; i<=enumber; i++) name[i]= mid(week,i*2+1,2);¢Ò 199 : Print_BarGraph(title, arrayname, snumber, enumber, highlight);¢Ò 200 : ¢Ò 201 : print("</td></tr></table>");¢Ò 202 : return(0);¢Ò 203 : }¢Ò 204 : ¢Ò 205 : Qhost= ""; // host nameÀÇ ÃʱⰪ¢Ò 206 : Qdb= "visit"; // data base nameÀÇ ÃʱⰪ¢Ò 207 : Qtable= "stat"; // table nameÀÇ ÃʱⰪ¢Ò 208 : Qlevel= 10; // graphÀÇ level ÃʱⰪ¢Ò 209 : Qrefresh= 0; // refreshÁÖ±â ÃʱⰪ(ºÐ´ÜÀ§, 0À̸é refreshÇÏÁö ¾ÊÀ½)¢Ò 210 : Qbcolor= "#000000"; // º»¹® ¹è°æ»ö ÃʱⰪ¢Ò 211 : Qtext= "#ffffff"; // º»¹® ¹®ÀÚ»ö ÃʱⰪ¢Ò 212 : Qdot=8; // graphÀÇ ÇÑ ºí·°ÀÇ Å©±â(pixel´ÜÀ§)¢Ò 213 : ¢Ò 214 : varcnt= htmlquery("GET") + htmlquery("POST");¢Ò 215 : Qrefresh*= 60; // ºÐ´ÜÀ§·Î º¯È¯¢Ò 216 : if(varcnt==0) dump_login("");¢Ò 217 : else¢Ò 218 : {¢Ò 219 : passwd= decode(cgipasswd, "", "@cgipasswd");¢Ò 220 : if(Qpasswd!=passwd)¢Ò 221 : {¢Ò 222 : msg= "<font color=#f00000><b>¾ÏÈ£°¡ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù!</b></font>";¢Ò 223 : dump_login(msg);¢Ò 224 : }¢Ò 225 : else¢Ò 226 : {¢Ò 227 : print("<html>\n<head>\n");¢Ò 228 : if(Qrefresh>0)¢Ò 229 : print("<meta http-equiv=refresh content=", Qrefresh, ">\n");¢Ò 230 : print_style();¢Ò 231 : print("</head>\n");¢Ò 232 : print("<body bgcolor=", Qbcolor, " text=", Qtext, "><center>");¢Ò 233 : rt= dump_graph();¢Ò 234 : if(rt!=0) print("ºñÁ¤»óÀûÀ¸·Î Á¾·áµÇ¾ú½À´Ï´Ù.!!!");¢Ò 235 : print("</center></body></html>\n");¢Ò 236 : print("<!-- Runtime: ", runtime()/1000000.0, "sec -->");¢Ò 237 : }¢Ò 238 : }¢Ò 239 : ¢Ò 240 : //////////////////////////// ÇÁ·Î±×·¥ Á¾·á /////////////////////////////¢Ò |
||||
|