php - php 处理分页 $_GET 请求超过限制
问题描述
我有一个模板页面,通过$_GET
请求对结果进行分页。
$_GET
如果用户访问的页面超过可用结果的总数,我应该如何处理任何错误?
我想到了以下解决方案,但我不确定哪个是理想的选择:
- 404 - 显示 404 错误信息
- 301/2 重定向回最后一个可用的结果页面
- 更改数据请求以显示最后一批可用的结果(不是重定向)
- 301/2重定向回第一页
- 只显示“无结果”消息(不是重定向)
我需要考虑到结果总数可能会随着时间的推移而增加或减少。含义my-page.php?p=3
可能会或可能不会显示结果。
我也想知道我是否需要考虑用户或机器人使用$_GET
任何页码向我的模板发送垃圾邮件的可能性my-page.php?p=9999999
,还是我想太多了?
谢谢
解决方案
机器人将要机器人。默认情况下将所有用户输入视为敌对,如果查询结果是有效的,则将其视为奖励。如果有人要求如此高的偏移量,您将不会得到任何结果,因此它不是 404,只是一个空列表上的“上一页”链接。
不要通过尝试重定向来变得聪明。坚持“垃圾进,垃圾出”的原则。
查看它在其他网站上的工作方式以进行比较。大多数只显示一个带有上一页按钮的空列表,该按钮转到第 1 页。他们输入了一些不可靠的数字不是你的错,或者page=ham+sandwich
。