<?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' page link,记录数结束时不应出现此链接
最佳答案
我想不出为什么您真的应该在链接中对用户隐藏页码。将它们作为 $_GET
变量保存在查询字符串中可能是我所知道的在这种特定分页情况下最常见的做法。
我会对在 $_GET
变量中收到的数字进行验证,因为这通常会导致 SQL Injection和其他问题...确保它是一个数字,可以被 10 整除(如果您喜欢网站的样子),可能不大于某个定义的数字,等等...
如果您真的仍然不同意,并且想隐藏它,那么您始终可以通过在用户计算机上保存 cookie(这仍然以某种方式向用户公开)或将页码保存在 session (虽然这对我来说似乎是对服务器资源的巨大浪费!)。
关于你的第二个问题 - 这有很多可能性......
这是一种方法:
创建一个 sql 查询来查询您的表中有多少行。
假设数字是 55。您将其放入隐藏值中。
如果您在一个页面上显示 10 个项目,那么您知道最后一页是第 6 个(如果您从第 1 页开始计数,则显示第 50-55 个项目)。
页面加载时的简单 php 检查:if ($_GET['page'] == 5)
那么您不会显示下一个按钮。
像这样(跳过验证检查和 sql 查询):
<input type="hidden" value="<?php echo $itemCount;?>">
<?php
if ($_GET['page'] < ($itemCount \ 10))
{
echo "<a href=\"items.php?page=".($_GET['page']+1)."\">";
}
?>
使用它,我会添加一个检查以确保用户没有输入大于此数字的数字,如果他们这样做,只需将他们重定向到他们可以输入的最后一个数字。
关于php - 分页和 url 编码帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4535369/