首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分页和url编码帮助

分页和url编码帮助
EN

Stack Overflow用户
提问于 2010-12-27 04:51:26
回答 1查看 521关注 0票数 1
代码语言:javascript
复制
<?php $name=$_POST['name']; ?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="name">
<input type="submit" value="GO" name="submit">
</form>

<?php

    include ('db.php');

    if(isset($_POST['submit'])) 
    {
    mysql_query ("INSERT INTO example (name) VALUES('$name')") or die(mysql_error());
    }

    if (!isset($_GET['startrow']) or !is_numeric($_GET['startrow'])) {
    $startrow = 0;
    } 
    else {
    $startrow = (int)$_GET['startrow'];
    }

$query = "SELECT * FROM example ORDER BY id DESC LIMIT $startrow, 20"; 

$result = mysql_query($query) or die(mysql_error());
    while($row = mysql_fetch_array($result)){
    echo "<li>";
    echo $row['name'] ." "." <a href= 'like.php?quote=" . urlencode( $row['name'] ) . "'>Click Here</a>";
    echo "</li>";
}




    echo '<a href="'.$_SERVER['PHP_SELF'].'?startrow='.($startrow+10).'">Next</a>';
?>

我想让我的网页链接隐藏,我怎样才能使隐藏,使用户不能编辑它。

第二个问题,

目前我在每个页面上显示总共10条记录,然后显示下一页按钮,但下一页按钮即使没有更多的记录也会继续显示……!如何在记录结束时删除下一页按钮。??

第28行是指向任何用户都可以轻松编辑的页面的链接,我想确保它们的安全(使用ID)

并且第35行是n‘’next‘页面链接,此链接不应在记录数结束时出现

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-27 05:04:14

我想不出为什么你真的应该在链接中对用户隐藏页码。将它们作为$_GET变量保存在查询字符串中可能是我所知道的在这种特定的分页情况下最常见的实践。

我会对$_GET变量中接收到的numebrs进行验证,因为这通常会导致SQL Injection和其他问题……确保它是一个数字,可能会被10整除(如果你希望网站是这样的话),可能不会大于某个定义的数字,等等。

如果你真的不同意,并且你想隐藏它,那么你总是可以通过在用户的计算机上保存cookie (以某种方式仍然对用户公开)或在会话中保存页码(尽管对我来说这似乎是对服务器资源的一大浪费!)。

关于你的第二个问题--有这么多的可能性...

这里有一种方法:

创建一个sql查询,用于查询表中有多少行。

假设这个数字是55。你把它放到一个隐藏值中。

如果你在一页上显示10个项目,那么你知道最后一页是6号(如果你从1页开始计数,则显示50-55项)。

当页面加载时,简单的php检查:if ($_GET['page'] == 5),然后你不会显示下一步按钮。

如下所示(跳过验证检查和sql查询):

代码语言:javascript
复制
<input type="hidden" value="<?php echo $itemCount;?>">
<?php
if ($_GET['page'] < ($itemCount \ 10))
{
    echo "<a href=\"items.php?page=".($_GET['page']+1)."\">";
}
?>

使用这个,我会添加一个检查,以确保用户输入的数字不会也大于这个数字,如果他们输入了这个数字,只需将他们重定向到他们可以输入的最后一个数字。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4535369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档