0

我有一个POSTPHP 表单,我正在转换为GET.

该表格有效,并为我提供了结果的第一页,没有任何问题。

但是如何链接到第二页?我假设我必须将所有GET参数复制到“下一页”链接加上页码(脚本已经处理),但我该怎么做呢?

澄清: 如何GET将表单中的所有变量放到页面中的链接上?

4

3 回答 3

2

最简单的方法也是做类似的事情:

$get = preg_replace("/page=\d+/i", "", $_SERVER['QUERY_STRING']);

$link = "somepage.php?".$get."&page=".($_GET['page']+1);

echo "<a href='".$link."'>Next Page</a>";

这将简单地获取获取字符串,删除页面然后将页面添加回 +1。请注意,这是不安全的,因为人们可以在查询字符串中传递任何内容。更好的选择是通过检查每个预期的 $_GET key=>value 对来显式构建 URL,对其进行验证,然后将其添加到链接变量中。这样查询字符串中的任何其他位都不会回显到页面。

编辑:

好的,这是一个非常简单的例子。

$category = (int)$_GET['cat'];
$keyword = trim($_GET['keyword']);
$keyword = filter_var($keyword, FILTER_SANITIZE_STRING);


$nextlink  = "somepage.php?";
$nextlink .= http_build_query(array(
   "cat" => $category,
   "keyword" => $keyword,
   "page" => $page+1
));

所以基本上你得到你想要的 GET var,验证它们,然后只使用 http_build_query 和一个关联数组来为链接构建你的查询字符串。我放入的安全性是非常基本的,但是类型转换数字和限制可以插入字符串的杂物数量是一个开始的地方

于 2012-06-07T15:26:46.523 回答
0

简单地说,您可以像这样从请求中读取它们:

$link = 'mypage/?someitem=' . $_GET['someitem'] . '&amp;page=' . ($page + 1);

尽管您可能不希望信任这些参数,因为它们可能包含 HTML 注入或其他旨在攻击您网站的恶意技巧。

于 2012-06-07T15:22:49.553 回答
0

不就是URL?param1=val1&param2=val2&...吗?

于 2012-06-07T15:24:14.090 回答