eregi("^\d+$",$pagenum) 
验证是否为数字不用你这么麻烦吧,像我这个就可以了。

解决方案 »

  1.   

    关键不是在那个正则式,是我现在提交的数据并不经过正则和任何东西的验证,就直接赋给pagenum了。而我想验证之后才赋给pagenum,大家看,我应该怎么办呢?
      

  2.   

    请问有兄弟知道怎么让输入的东西经过验证之后再提交给pagenum吗。希望有能给我一个思路的兄弟,非常感谢!
      

  3.   

    你把echo 语句放在验证的后面不就行了吗?
      

  4.   

    <?PHP
    if ($pagenum!="")
    {echo $pagenum;
      if (!eregi("^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$",$pagenum) )
       {
          $pagenum=1;
       } 
       elseif($pagenum < 1) 
       {
          $pagenum=1;
       }
       elseif($pagenum > $totalpage) 
        {
           $pagenum=$totalpage;
        }
    }?>echo '看看输出的结果是什么'.$pagenum.'<br>';会不会是你的elseif写成了else if的原因?改如上试看看呢?如果所有变量都对,这么写应该没问题的
      

  5.   


    <?PHP
    if ($pagenum!="" && is_numeric($pagenum))
    {
       echo $pagenum;
    }
    else 
    {
    echo "非法字符";
    }
    ?>
      

  6.   

    我输入乱码输出的结果是1,但是页码是1中国页,就是说它是先把这个值给了pagenum之后,然后再让函数验证的。页码的格式是第<?$pagenum?>页。
    代码是;<form name="form1" id="form1" method="get" action="fy.php?pagenum=<? echo $_POST['pagenum']?>">
    <b>第<?=$pagenum;?>页,共<?=$totalpage;?>页.......共<?=$total;?>条记录
    <?PHP
    if ($pagenum!="")
    {echo $pagenum;
      if (!eregi("^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$",$pagenum) )
       {
          $pagenum=1;
       } 
       elseif($pagenum < 1) 
       {
          $pagenum=1;
       }
       elseif($pagenum > $totalpage) 
        {
           $pagenum=$totalpage;
        }
    }echo '看看输出的结果是什么'.$pagenum.'<br>';
    ?>
    <input type="submit" name="Submit" value="转到" />
    <input name="pagenum" type="text" size="5" onkeyup="this.value=this.value<1?1:this.value><?echo $totalpage;?>?<?echo $totalpage;?>:this.value" />
    </form> 
      

  7.   

    上面说的好象不清楚,用上面的代码,输入1中国后
    输出的是
    第1中国页
    看看输出的结果是什么1
    而用小邪前辈的代码,输出的是
    第1中国页
    非法字符在第<?$pagenum?>里的值,还是提交后的$pagenum并没有验证。
      

  8.   

    你竟然已经知道了总页面数,那么为了避免乱码出现,不需要正则式,比较简单的做法是,你判断一下输入的页面数是否在1~totalpage之间,如果不是直接跳转到第一页.
    if (($pagenum>1)&&($pagenum<$totalpage)){
         ;
    }else{
         $pagenum = 1;
    }
      

  9.   

    晕,怎么还在绕。
    你的验证是在输出之后,当然输出的不对。
    把验证的部分拿到输出的前面,post的后面不就行了?
      

  10.   

    晕,怎么还在绕。
    你的验证是在输出之后,当然输出的不对。
    把验证的部分拿到输出的前面,post的后面不就行了?
    晕了,那应该怎么办啊,老大能把我的程序组织一下码/
      

  11.   

    <form name="form1" id="form1" method="get" action="fy.php?pagenum=<? echo $_POST['pagenum']?>">
    <?PHP
    if ($pagenum!="")
    {echo $pagenum;
      if (!eregi("^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$",$pagenum) )
       {
          $pagenum=1;
       } 
       elseif($pagenum < 1) 
       {
          $pagenum=1;
       }
       elseif($pagenum > $totalpage) 
        {
           $pagenum=$totalpage;
        }
    }echo '看看输出的结果是什么'.$pagenum.'<br>';
    ?>
    <b>第<?=$pagenum;?>页,共<?=$totalpage;?>页.......共<?=$total;?>条记录<input type="submit" name="Submit" value="转到" />
    <input name="pagenum" type="text" size="5" onkeyup="this.value=this.value<1?1:this.value><?echo $totalpage;?>?<?echo $totalpage;?>:this.value" />
    </form> 我都改成这样了,还是不行啊
      

  12.   

    <form name="form1" id="form1" method="get" action="">
    <?PHP
    if ($pagenum!="")
    {echo $pagenum;
      if (!eregi("^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$",$pagenum) )
       {
          $pagenum=1;
       } 
       elseif($pagenum < 1) 
       {
          $pagenum=1;
       }
       elseif($pagenum > $totalpage) 
        {
           $pagenum=$totalpage;
        }
    }echo '看看输出的结果是什么'.$pagenum.'<br>';
    ?>
    <b>第<?=$pagenum;?>页,共<?=$totalpage;?>页.......共<?=$total;?>条记录<input type="submit" name="Submit" value="转到" />
    <input name="pagenum" type="text" size="5"  />
    </form>都这样了还不行啊
      

  13.   

    <?PHP
    $pagenum=isset($_POST['pagenum'])?$_POST['pagenum']:1;if ($pagenum!=""){echo $pagenum;
      if (!eregi("^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$",$pagenum) )
       {
          $pagenum=1;
       } 
       elseif($pagenum < 1) 
       {
          $pagenum=1;
       }
       elseif($pagenum > $totalpage) 
        {
           $pagenum=$totalpage;
        }
    }echo '看看输出的结果是什么'.$pagenum.'<br>';
    ?><form name="form1" id="form1" method="get" action="fy.php?pagenum=<? echo $pagenum ?>">
    <b>第<?=$pagenum;?>页,共<?=$totalpage;?>页.......共<?=$total;?>条记录<input type="submit" name="Submit" value="转到" />
    <input name="pagenum" type="text" size="5" onkeyup="this.value=this.value<1?1:this.value><?echo $totalpage;?>?<?echo $totalpage;?>:this.value" />
    </form> 
      

  14.   

    那个if前面没加回车,自己加一下吧,这样太难看。
    不知道你的$totalpage怎么来的,
    如果register_globals是on的话,最好还是改成off,然后从post取出来
      

  15.   

    忘记删你那个echo了
    <?PHP
    $pagenum=isset($_POST['pagenum'])?$_POST['pagenum']:1;if ($pagenum!=""){  if (!eregi("^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$",$pagenum) )
       {
          $pagenum=1;
       } 
       elseif($pagenum < 1) 
       {
          $pagenum=1;
       }
       elseif($pagenum > $totalpage) 
        {
           $pagenum=$totalpage;
        }
    }echo '看看输出的结果是什么'.$pagenum.'<br>';
    ?><form name="form1" id="form1" method="get" action="fy.php?pagenum=<? echo $pagenum ?>">
    <b>第<?=$pagenum;?>页,共<?=$totalpage;?>页.......共<?=$total;?>条记录<input type="submit" name="Submit" value="转到" />
    <input name="pagenum" type="text" size="5" onkeyup="this.value=this.value<1?1:this.value><?echo $totalpage;?>?<?echo $totalpage;?>:this.value" />
    </form> 
      

  16.   

    <?php include ("dbconf.inc"); ?>/*连接数据库*/
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <link href="main.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <?PHP 
     $pagenum=isset($_POST['pagenum'])?$_POST['pagenum']:1;
    if ($pagenum!="")
    {echo $pagenum;
      if (!eregi("^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$",$pagenum) )
       {
          $pagenum=1;
       } 
       elseif($pagenum < 1) 
       {
          $pagenum=1;
       }
       elseif($pagenum > $totalpage) 
        {
           $pagenum=$totalpage;
        }
    }echo '看看输出的结果是什么'.$pagenum.'<br>';/*这里输出结果正确*/
    ?>
    <form name="form1" id="form1" method="post" action="fy.php?pagenum=<? echo $_POST['pagenum']?>"><?PHP$_POST=$_GET;//接收GET型参数的准备,把GET型参数值赋给POST型值
    $binAddedWhere=false;//定义 查询语句中是否出现where和何时出现where
    if($_POST['submitflag'])

                                     //如果有查询操作,则在此接收参数
    }
    else
    {
    $pagenum = $_GET['pagenum']; //如果没有参数传入,则在此获得本页的页码,通过URL截取
    }
    $fileself="fy.php";//本页名
    $strSQL="SELECT * from rkgl";//查询要显示的内容。
    if(!$binAddedWhere) 
     {
     $fileself=$fileself."?";
     $binAddedWhere=true;
     }
     else
     {$fileself=$fileself."&";
     }//URL形式规定,是出现?或者 出现&号
    $result = mssql_query($strSQL);//执行查询语句
    $total = mssql_num_rows($result);//获得信息条数
    $pagesize=10;//规定每页信息数目
    if (($total%$pagesize)!=0) 
    $totalpage=intval($total/$pagesize)+1;//最后页页码 
    else 
    $totalpage=intval($total/$pagesize); //最后页页码 
    if (empty($_GET['pagenum'])){
     $_GET['pagenum']=1; }
      if($total!=0){ 
               mssql_data_seek($result,(($_GET['pagenum']-1)*$pagesize)); 
                          } 
                     $i=1; 
     //页码规定?>
    <table border="0" > 
    <?PHP
    while($row=mssql_fetch_row($result)) 
       {?>
          <tr> 
            <td><?=$row[0];//$row['tital']?></td> 
            <td><?=$row[1];?></td> 
            <td><?=$row[2];?></td> 
            <td><?=$row[3];?></td> 
    <td><?=$row[4];?></td> 
    <td><?=$row[5];?></td>
          <td><a href="content.php?id=<?=//$row['id'];?>"><? //=$row['tital'];?></a></td>
         </tr>
     <? $i++; 
         if ($i>$pagesize) 
        break; 
         else 
          continue; 
             }
        ?>
        <b>第<?=$pagenum;?>页,共<?=$totalpage;?>页.......共<?=$total;?>条记录
    </table><br/>
    <span class="unnamed1">
    <?PHP
       echo "<a href='".$fileself."pagenum=1'>首页</a> ";
      if ($pagenum>1){
      $temp_current=$_GET['pagenum']-1;
     echo "<a href='".$fileself."pagenum=".$temp_current."'>上一页</a> "; }
      if ($pagenum<$totalpage){
      $temp_current=$_GET['pagenum']+1;
     echo "<a href='".$fileself."pagenum=".$temp_current."'>下一页</a> "; }
     echo "<a href='".$fileself."pagenum=".$totalpage."'>尾页</a> ";
    //导航条设置
    ?> 
    </span>
    <input type="submit" name="Submit" value="转到" />
    <input name="pagenum" type="text" size="5"  onkeyup="this.value=this.value<1?1:this.value><?echo $totalpage;?>?<?echo $totalpage;?>:this.value" />

    </form> 
    </body>
    </html>
      

  17.   

    你的action那边为什么使用没验证过的$_post['pagenum']?改成$pagenum
      

  18.   

    试过了,是POST和GET方法的逻辑错误,不过还不知道怎么改
      

  19.   

    把这个改成POST就输不进乱码了,不过,也完不成分页了,呵呵