还是关于分页中的转到的问题 eregi("^\d+$",$pagenum) 验证是否为数字不用你这么麻烦吧,像我这个就可以了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关键不是在那个正则式,是我现在提交的数据并不经过正则和任何东西的验证,就直接赋给pagenum了。而我想验证之后才赋给pagenum,大家看,我应该怎么办呢? 请问有兄弟知道怎么让输入的东西经过验证之后再提交给pagenum吗。希望有能给我一个思路的兄弟,非常感谢! 你把echo 语句放在验证的后面不就行了吗? <?PHPif ($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的原因?改如上试看看呢?如果所有变量都对,这么写应该没问题的 <?PHPif ($pagenum!="" && is_numeric($pagenum)){ echo $pagenum;}else {echo "非法字符";}?> 我输入乱码输出的结果是1,但是页码是1中国页,就是说它是先把这个值给了pagenum之后,然后再让函数验证的。页码的格式是第<?$pagenum?>页。代码是;<form name="form1" id="form1" method="get" action="fy.php?pagenum=<? echo $_POST['pagenum']?>"><b>第<?=$pagenum;?>页,共<?=$totalpage;?>页.......共<?=$total;?>条记录<?PHPif ($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> 上面说的好象不清楚,用上面的代码,输入1中国后输出的是第1中国页看看输出的结果是什么1而用小邪前辈的代码,输出的是第1中国页非法字符在第<?$pagenum?>里的值,还是提交后的$pagenum并没有验证。 你竟然已经知道了总页面数,那么为了避免乱码出现,不需要正则式,比较简单的做法是,你判断一下输入的页面数是否在1~totalpage之间,如果不是直接跳转到第一页.if (($pagenum>1)&&($pagenum<$totalpage)){ ;}else{ $pagenum = 1;} 晕,怎么还在绕。你的验证是在输出之后,当然输出的不对。把验证的部分拿到输出的前面,post的后面不就行了? 晕,怎么还在绕。你的验证是在输出之后,当然输出的不对。把验证的部分拿到输出的前面,post的后面不就行了?晕了,那应该怎么办啊,老大能把我的程序组织一下码/ <form name="form1" id="form1" method="get" action="fy.php?pagenum=<? echo $_POST['pagenum']?>"><?PHPif ($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> 我都改成这样了,还是不行啊 <form name="form1" id="form1" method="get" action=""><?PHPif ($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>都这样了还不行啊 <?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> 那个if前面没加回车,自己加一下吧,这样太难看。不知道你的$totalpage怎么来的,如果register_globals是on的话,最好还是改成off,然后从post取出来 忘记删你那个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> <?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和何时出现whereif($_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" > <?PHPwhile($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> 你的action那边为什么使用没验证过的$_post['pagenum']?改成$pagenum 试过了,是POST和GET方法的逻辑错误,不过还不知道怎么改 把这个改成POST就输不进乱码了,不过,也完不成分页了,呵呵 php调用com组件问题 [总结+讨论]php 字符串过滤 各类函数应用 图片循环移动 PHP如何入门啊? 【求助】如何让PHP显示多行数据为横向排列的? 紧急求助:各位大虾,这段cookie的登录注销代码,哪里错了?? 不用按提交键,留言页面只需一刷新就会往数据库上添加一条前一次添加过的数据,求解决!!~~ 小弟命苦阿!。。。。。。。 fopen不能读文件问题 IIS+PHP问题 请问一个值班的问题,五个人轮流值班(按天),用PHP应该怎么写啊? 急急急!!!msyql 问题,我的服务器不知道怎么搞的,mysql突然不行了,dos下root登录不上了,重装也不行。
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的原因?改如上试看看呢?如果所有变量都对,这么写应该没问题的
<?PHP
if ($pagenum!="" && is_numeric($pagenum))
{
echo $pagenum;
}
else
{
echo "非法字符";
}
?>
代码是;<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>
输出的是
第1中国页
看看输出的结果是什么1
而用小邪前辈的代码,输出的是
第1中国页
非法字符在第<?$pagenum?>里的值,还是提交后的$pagenum并没有验证。
if (($pagenum>1)&&($pagenum<$totalpage)){
;
}else{
$pagenum = 1;
}
你的验证是在输出之后,当然输出的不对。
把验证的部分拿到输出的前面,post的后面不就行了?
你的验证是在输出之后,当然输出的不对。
把验证的部分拿到输出的前面,post的后面不就行了?
晕了,那应该怎么办啊,老大能把我的程序组织一下码/
<?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> 我都改成这样了,还是不行啊
<?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>都这样了还不行啊
$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>
不知道你的$totalpage怎么来的,
如果register_globals是on的话,最好还是改成off,然后从post取出来
<?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>
<!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>