<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Language" content="zh-cn">
<title>清单查询</title>
</head>

<body background="bkg.bmp">

<p align="center"><font size="5"><b>上网清单</b></font></p>
<hr color="#999966">


<p align="center">
<?php
	$db=mysql_pconnect(get_cfg_var("SIPSERVER"),get_cfg_var("SIPUSER"),get_cfg_var("SIPPWD"));
	mysql_select_db(get_cfg_var("SIPDB"),$db);
	$userid = trim($_REQUEST["userid"]);
	$loginname = trim($_REQUEST["loginname"]);
	$password = trim($_REQUEST["password"]);
	$bPass=FALSE;
	if ($userid!="") {
		$bPass=TRUE;
	}
	else {
		if ($loginname!="" && $password!="") {
			$bFound=0;
			$rs = mysql_query("select userid,password from users where loginname='".$loginname."' and checked='n'",$db);	//取该用户开号数据
			if ($row = mysql_fetch_array($rs)) {
				if ($password!=$row["password"]) {
					$bFound=1;				//密码错误
				}
				else {
					$userid=$row["userid"];
					$bFound=2;				//密码符合
				}
			}
			mysql_free_result($rs);
			if ($bFound==0) {
				echo("不存在此用户ID！");
			}
			elseif ($bFound==1) {
				echo("用户密码错误！");
			}
			else {
				$bPass=TRUE;
			}
		}
		else {
			echo("必须输入用户ID和密码后才能查询上网清单！");
		}
	}
	if ($bPass) {			//用户身份验证通过
			$year1 = $_REQUEST["year1"];
			$month1 = $_REQUEST["month1"];
			$month2 = $_REQUEST["month2"];
			$time1=strftime("%Y-%m-01 00:00:01");		//统计开始时间，本月开始
			$time2=strftime("%Y-%m-01 00:00:01",strtotime("+1 month",time()));		//统计结束时间，下一个月开始
    		if ($year1!="" && $month1!="" && $month2!="") {
				$time1=$year1;
				if (intval($month1)<10) {
	    			$time1=$time1."-0".$month1."-01 00:00:01";		//统计开始时间
				}
				else {
	    			$time1=$time1."-".$month1."-01 00:00:01";		//统计开始时间
				}
				$time2=$year1;
				if (intval($month2)<10) {
	    			$time2=$time2."-0".$month2."-01 00:00:01";
				}
				else {
	    			$time2=$time2."-".$month2."-01 00:00:01";
				}
				$time2=strftime("%Y-%m-01 00:00:01",strtotime("+1 month",strtotime($time2)));		//统计结束时间，下一个月开始
    		}
			$pagecount=20;		//每页显示多少条记录
			$str=$_REQUEST["pageno"];
			if ($str=="") {
				$str="1";
			}
			$page_no=intval($str);			//当前显示页号，因为可能需要多页显示
			$count=0;
			$alltime=0;
			$alllength=0;
			$alllengthstr="0";
			$allpage=0;
			$rs = mysql_query( "select count(userid) as allcount,sum(usetime) as alltime,sum(datalength) as alllength from history where userid='".$userid."' and starttime>='".$time1."' and starttime<='".$time2."'",$db );	//读取该用户上网记录
			//计算总记录数，计算共有多少页。总共时间，总共流量。
			if ($row = mysql_fetch_array($rs)) {			//有记录
				$count=$row["allcount"];
				$alltime=round($row["alltime"]/3600,2);
				$alllength=round($row["alllength"]/1024,2);		//换算成M为单位
			}
			mysql_free_result($rs);
			if ($count<1) {
				echo("您暂时还没有上网清单！");
			}
			else {
				$allpage=(int)($count/$pagecount);
				if ($allpage*$pagecount<$count) {		//不是整除
					$allpage=$allpage+1;
				}
				if ($page_no>$allpage) {
					echo("页号超出记录范围!");
				}
				else {
					$rs = mysql_query( "select ipaddr,starttime,endtime,usetime,datalength from history where userid='".$userid."' and starttime>='".$time1."' and starttime<='".$time2."' order by starttime",$db );
					if ($row = mysql_fetch_array($rs)) {			//有记录
						$n=1;
						while ($row && $n<=($page_no-1)*$pagecount) {		//移动行号直到当前页对应起始行号位置
							$row = mysql_fetch_array($rs);
							$n=$n+1;
						}
						if ($row) {
							echo("<table border='1' bordercolor='#808080' cellspacing='0' cellpadding='0'>");
							echo("<tr><td>序号</td><td>IP地址</td><td>开始时间</td><td>结束时间</td><td>使用时间(秒)</td><td>流量(K)</td></tr>");
							while ($row && $n<=$page_no*$pagecount) {		//显示当前页记录
								echo("<tr>");
								echo("<td>".strval($n)."</td>");
								echo("<td>".$row["ipaddr"]."</td>");
								echo("<td>".$row["starttime"]."</td>");
								echo("<td>".$row["endtime"]."</td>");
								echo("<td>".strval($row["usetime"])."</td>");
								echo("<td>".strval($row["datalength"])."</td>");
								echo("</tr>");
								$row = mysql_fetch_array($rs);
								$n=$n+1;
							}
							mysql_free_result($rs);
							if ($page_no==$allpage) {		//最后一页
								$tmpstr2=strftime("%Y-%m-01 00:00:01",strtotime("+1 month",time()));		//统计结束时间，下一个月开始
					    		if ($time2==$tmpstr2) {		//而且是显示当前月，显示当前正在上网的记录
									$rs = mysql_query("select logintime from login where userid='".$userid."'",$db);
									if ($row = mysql_fetch_array($rs)) {			//有记录
										$loginedtime=DateDiff("s",strtotime($row["logintime"]),time());
										$alltime=$alltime+$loginedtime;
										echo("<tr>");
										echo("<td>".strval($n)."</td>");
										echo("<td>正在上网</td>");
										echo("<td>".$row["logintime"]."</td>");
										echo("<td>未结束</td>");
										echo("<td>".strval($loginedtime)."</td>");
										echo("<td>未结束</td>");
										echo("</tr>");
									}
									mysql_free_result($rs);
								}
							}
							echo("</table><br>");
							echo("共 ".strval($count)." 次，总时间 ".strval($alltime)." 小时，总流量 ".strval($alllength)." M。");
							echo("<form method=GET action=query_result.php><input type=hidden name=userid value=".$userid."><input type=hidden name=year1 value=".$year1."><input type=hidden name=month1 value=".$month1."><input type=hidden name=month2 value=".$month2.">");
							echo("第 ".strval($page_no)." 页，共 ".strval($allpage)." 页。");
							if ($page_no>1) {			//有前一页
								echo("<a href=query_result.php?userid=".$userid."&year1=".$year1."&month1=".$month1."&month2=".$month2."&pageno=".strval($page_no-1).">前一页</a>");
							}
							if ($page_no<$allpage) {	//有后一页
								echo(" <a href=query_result.php?userid=".$userid."&year1=".$year1."&month1=".$month1."&month2=".$month2."&pageno=".strval($page_no+1).">后一页</a>");
							}
							if ($allpage>2) {	//超过2页
								echo(" 到<input type=text size=3 name=pageno maxlength=3>页");
							}
							echo("</form>");
						}
						else {
							mysql_free_result($rs);
							echo("页号已经超出记录范围!");
						}
					}
					else {
						mysql_free_result($rs);
						echo("您还没有上网记录!");
					}
				}
			}
	}
	mysql_close($db);
?>
</p>

<p align="center">统计时间范围：从 <?php echo $time1; ?> 起，到 <?php echo $time2; ?> 止。</p>

<hr>
<p align="center">SIP企业上网管理系统</p>
<p align="center">作者：<b>深圳市飞沃软件有限公司</b></p>

</body>

</html>

<?php
function DateDiff($opertype,$starttime,$endtime)
{
	if ($starttime>=$endtime) return 0;	//starttime在endtime之后，返回0
	$n=0;
	if ($opertype=="d") {
		if ( strftime("%Y-%m-%d",$starttime)==strftime("%Y-%m-%d",$endtime) ) return 0;	//同一天
		while (TRUE) {
			$n++;
			if ( strftime("%Y-%m-%d",strtotime("+".strval($n)." day",$starttime))==strftime("%Y-%m-%d",$endtime) ) {
				//年月日部分已经相同
				break;
			}
		}
	}
	elseif ($opertype=="m") {
		if ( strftime("%Y-%m",$starttime)==strftime("%Y-%m",$endtime) ) return 0;	//同一月
		while (TRUE) {
			$n++;
			if ( strftime("%Y-%m",strtotime("+".strval($n)." month",$starttime))==strftime("%Y-%m",$endtime) ) {
				//年月部分已经相同
				break;
			}
		}
	}
	elseif ($opertype=="yyyy") {
		if ( strftime("%Y",$starttime)==strftime("%Y",$endtime) ) return 0;	//同一年
		while (TRUE) {
			$n++;
			if ( strftime("%Y",strtotime("+".strval($n)." year",$starttime))==strftime("%Y",$endtime) ) {
				//年部分已经相同
				break;
			}
		}
	}
	elseif ($opertype=="s") {
		$n=$endtime-$starttime;
	}
	else {
		$n=0;
	}
	return $n;
}
?>
