0

我有一个菜鸟问题,我想知道如何才能完成这项工作。

我有一个页面列出了我的数据库中的产品。在该页面上有一个过滤器表单,它会发布大量数据以优化产品列表,即每页有多少结果、排序顺序、pricefrom、priceto 加上一组子类别

我还有一个分页系统,它只是标准的 zencart(以防splitpageresults::dsplaylinks有人熟悉)分页系统,它显示下一个、上一个和一些页码的链接。通常它会$_GET在链接末尾传递参数,但我有我制作的所有这些花哨的过滤器。

我的想法是序列化$_POST数组并将其作为$_GET链接中的参数发送:

<a href="index.php&arr=<?php echo serialize($_POST[]);?>">nxt</a>

但这似乎对所有的序列化和反序列化都不好。

这样做的最佳方法是什么?

我想不通!

4

4 回答 4

2

您可以删除[]urlencode()序列化数据:

<a href="index.php&arr=<?php echo urlencode(serialize($_POST));?>">nxt</a>

但是你最好使用session。请参阅手册

于 2012-10-25T13:43:39.783 回答
0

查看高级搜索和高级搜索结果页面,了解使用 POST 处理大量数据的示例。

于 2012-10-25T16:59:56.817 回答
0

试试这个

   /* View.php*/

    $image_arr=array("1.jpg","2.jpg","3.jpg","4.jpg","5.jpg","6.jpg");
    $serial_arr=urlencode(base64_encode(serialize($image_arr)));

    echo '<a href="process.php?arr='.$serial_arr.'">Link</a>';



    /* process.php */
    $image_arr=unserialize(base64_decode(urldecode($_GET['arr'])));

    foreach($image_arr as $value){
       /* do anything here 
        * just as an example
        * https://gist.github.com/vdite/30644e28301916789ff5
        */
    }
于 2015-06-01T13:54:53.933 回答
0

恕我直言,$_GET 或 $_POST 上的 serialize() 和 deserialize() 远非一个好主意,我可以想到两个主要方面:

  1. 安全
  2. 最佳实践

有关安全方面的更多详细信息,请查看[PDF, owasp.org]上的 Stefen Esser 的 OWASP 演示文稿,第 27 页。一般来说,没有很多人希望我们相信的那么严重,但仍然可能成为一个令人讨厌的安全问题(如 phpBB2、Zend 等)。

最佳做法是使用 JSON(json_encode 和 json_decode 是更好的选择)。使用 JSON,您可以执行更多基于标准的 AJAX,以及用户友好的 JavaScript 或基于 jQuery 的分页或过滤器。

于 2016-05-29T13:34:10.380 回答