一个php分页函数,自己稍改了改

 pageft.php
---------------------------------------------------------------
<style type="text/css">
<!--
#select{
   background-color:#6e6e6e;
   border: 1px solid #999999;
   color:#FFFFFF;
   font-family:Arial, Helvetica, sans-serif;
   font-size:11px;

}
#select2{
 
   color:#626262;
   font-family:Arial, Helvetica, sans-serif;
   font-size:11px;
}
#select3{
 
   color:#000;
   font-family:Arial, Helvetica, sans-serif;
   font-size:11px;
}
#select4{
 
   background-color:#e7e7e7;
   font-family:Arial, Helvetica, sans-serif;
   font-size:11px;
   width:25px;
}
-->
</style>
<?
//***QQ:474936159******
//***msn:taozi05java3@163.com****
//***homepage:xiaonei.com/taozi05***
//别相信一切输进来的,都要判断下。是不是真的。
function getpage($sql,$page_size=20)//每页20和传过来的sql
 {
      global $page,$totalpage,$sums;  //out param
      $page = intval(addslashes($_GET["page"]));//传参数。
      //自己过滤下
      //判断是不是数字
      if(!is_numeric($page)){
                echo "<script>alert('Input is invalid');history.back();</script>";
                exit;
      }
      //过滤。。
      if(eregi("select|insert|update|delete|/'|///*|/*|/././/|/.//|union|into|load_file|outfile|for|while|when", $page)){
                echo "<script>alert('Input is invalid');history.back();</script>";
                exit;
      }
      $pagesql = strstr($sql," from ");//找到第一个FROM的。
      $pagesql = "select count(*) as ids ".$pagesql;//查询sql
      $result = @mysql_query($pagesql);
      if($rs = mysql_fetch_array($result)) $sums = $rs[0];//得到总数
      $totalpage = ceil($sums/$page_size);//有小数就进一位。
      if((!$page)||($page<1)) $page=1;//判断是不是有第一页。
      $startpos = ($page-1)*$page_size;    //计算起点。
      $sql .=" limit $startpos,$page_size ";//限制起点并要求一页20
      return $sql;
 }
 

 
function showbar($string="")
{    
    global $page,$totalpage;
    //对参数进行过滤。
    //$strimg = "vid=75";   传递记录值
    //添加斜线,转义某些特殊字符
    $string=addslashes($string);
//    return $string;
    //过滤下
    //过滤。。你好呀。呵呵,没事了
    if(eregi("select|insert|update|delete|/'|///*|/*|/././/|/.//|union|into|load_file|outfile|for|while|when", $string)){
                echo "<script>alert('Input is invalid');history.back();</script>";
                exit;
    }
 $out="Total <font color='red' size='2'><b>".$totalpage."</b></font> pages&nbsp;&nbsp;";
    $linkNum =8;
    $start = ($page-round($linkNum/2))>0 ? ($page-round($linkNum/2)) : "1";
    $end   = ($page+round($linkNum/2))<$totalpage ? ($page+round($linkNum/2)) : $totalpage;
    $prestart=$start-1;
    $nextend=$end+1;
    if($page<>1)
 $out .= "<a href='?page=1&&".$string."'title=first_page id='select2'>first page</a>&nbsp;";
    if($start>1)
 $out.="<a href='?page=".$prestart."&&".$string."'  id='select2' >..<<</a>&nbsp;";
 $t='';//初始化。
 //循环,这样,如果每页5条记录,则当点第6页时,6的左右两边各有4个页码,就像这样:
 //2345 6 78910
 for($t=$start;$t<=$end;$t++)
    {
     $out .= ($page==$t) ? "<font id='select'><b>".$t."</b></font>&nbsp;" : "<a href='?page=$t&&".$string."' id='select3'>$t</a>&nbsp;";
    }
 if($end<$totalpage)
 $out.="<a href='?page=".$nextend."&&".$string."'  id='select2'>>>..</a>";
    if($page<>$totalpage)
    //下一页
   $out .= "&nbsp;<a href='?page=".$totalpage."&&".$string."' title=last_page id='select2'>last page</a>";
   if($_SERVER['REQUEST_METHOD']=="POST"){
     $gopage=intval($_POST['go_page']);
     if(!is_numeric($gopage)||$gopage==""){
      $gopage=1;
     }
     ?>
     <?
   }
 //这个是转到,需要受到输入的。
//   $out .="&nbsp;&nbsp;Goto";
//   $out .= "<input id='select4' type='text' size='2' value='".intval($_GET['page'])."'onBlur=/"";
//   $out .= "javascript:if(isNaN(parseInt(this.value)) || parseInt(this.value)";
//   $out .= "> ".$totalpage."){alert('You can only enter the figures in 1 ~ ".$totalpage;
//   $out .= ", please re-enter'); return false;}location.href='?page='+parseInt(this.value)+'&&".$string."'";
//   $out .= "/" >";
//   $out .= "page";
   return $out;
}
//例子
/*require_once("pageft.php");
$sql="select * from table";
$querysql=getpage($sql);
mysql_query("set names utf-8");
$result=mysql_query($querysql);
while($arr=mysql_fetch_array($result)){
//你想要输出的东西,
}
//分页导航显示,默认是为空的,如果有参数,你自己加吧。
echo showbar("");
*///ok了,没了,有问题找我啦。
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值