如何用php在URL中传递多维数据

如何用php在URL中传递多维数据,php,arrays,url,parameters,Php,Arrays,Url,Parameters,我想知道用php在URL中传递多维数据的方法。 我有一个这样的数组 $number = $_SESSION["number"]; $number = $number+1; $_SESSION["number"] = $number; $_SESSION['count']$number]=array($_POST['buy_app_page'],$_POST['x'],$_POST['y'],$_POST['w'],$_POST['h'],$_POST['selected_value

我想知道用php在URL中传递多维数据的方法。
我有一个这样的数组

$number  = $_SESSION["number"];  
$number = $number+1;  
$_SESSION["number"] = $number;  
$_SESSION['count']$number]=array($_POST['buy_app_page'],$_POST['x'],$_POST['y'],$_POST['w'],$_POST['h'],$_POST['selected_values'],$number);
$pixels_detail=$_SESSION['count'];
$pixels_detail=$_SESSION['count'];
我想将$pixels\u detail变量中存储的会话数据传递到url。我试图对此进行修改,但它显示了一个空白参数,url中没有任何值

实际上,我将购物车数据存储在一个会话数组中,当用户添加完产品后,他/她单击“继续”按钮时,有两个按钮。这是我希望以任何方式将整个会话数据传递到下一页的位置,使用url或其他我现在不知道的方式


请帮忙

为什么要将数据传递到URL?通常,将其存储在会话中是最好的方法。如果您想在URL中传递复杂的数据,您可以查看一下PHP的名称和功能


还有一个非常好的函数可以转换复杂的数据。但请注意查询字符串的4096个字符限制。我真的建议您阅读会话中的数据,只要您没有任何反对的理由。您可以使用按钮只传递一个参数,然后从会话中读取相应的数据。

为什么要将数据传递到URL?通常,将其存储在会话中是最好的方法。如果您想在URL中传递复杂的数据,您可以查看一下PHP的名称和功能


还有一个非常好的函数可以转换复杂的数据。但请注意查询字符串的4096个字符限制。我真的建议您阅读会话中的数据,只要您没有任何反对的理由。您可以使用按钮只传递一个参数,然后从会话中读取相应的数据。

您可以使用以下符号通过URL传递数组:

somepage.php?testarray[0]=element_one&testarray[1]=element_two
类似地,您可以发送多个数组,如下所示:

somepage.php?testarray[0][0]=element_one&testarray[0][1]=element_two&testarray[1][0]=element_three&testarray[1][1]=element_four
我在本地测试了一下,效果很好


注意:以这种方式发送大量内容是不好的做法。如果我是你,我会研究通过POST工作的其他方法。

你可以使用以下符号通过URL传递数组:

somepage.php?testarray[0]=element_one&testarray[1]=element_two
类似地,您可以发送多个数组,如下所示:

somepage.php?testarray[0][0]=element_one&testarray[0][1]=element_two&testarray[1][0]=element_three&testarray[1][1]=element_four
我在本地测试了一下,效果很好


注意:以这种方式发送大量内容是不好的做法。如果我是你,我会研究通过POST工作的其他方法。

请注意,你可以通过
GET
获取的数据量是有限制的@Daniel Vandersluis:如果我没记错的话,标准是512字节,但在实践中我从来没有找到限制。虽然我不想鼓励人们打破标准或其他任何东西,但我很好奇,你有没有遇到过任何(2000年后)浏览器实际遵守的标准限制?我只是好奇,不想在这里打架。:)@Helgi:IE6的上限约为256个字符。我还没有找到超出这个范围的限制,但我也没有尝试过频繁地推这个限制…@Helgi我忘记了确切的数字,但是不同的浏览器以不同的方式实现了这个限制。我清楚地记得在IE6(于2001年发布)中曾经遇到过它。请注意,您可以通过
GET
@Daniel Vandersluis传递的数据量是有限制的:如果我没记错的话,标准是512字节,但实际上我从未发现有限制。虽然我不想鼓励人们打破标准或其他任何东西,但我很好奇,你有没有遇到过任何(2000年后)浏览器实际遵守的标准限制?我只是好奇,不想在这里打架。:)@Helgi:IE6的上限约为256个字符。我还没有找到超出这个范围的限制,但我也没有尝试过频繁地推这个限制…@Helgi我忘记了确切的数字,但是不同的浏览器以不同的方式实现了这个限制。我清楚地记得在IE6(于2001年发布)中有一次遇到过它。我用php实现了序列化和非序列化,它可以工作,但在url中它拥有所有序列化字符串。实际上,我正在做的是,我有一个页面,其中用户来选择一个产品有两个按钮,例如,添加另一个和继续我必须检查用户是否刚刚单击了继续按钮,然后表单应该以正常方式将数据带到下一个页面,否则,如果用户单击并添加了另一个按钮,并且添加了任何产品,那么它将被删除应转到会话数组中所有数据的下一页。谢谢你的快速回答,请再告诉我一次。谢谢(将+1,但没有投票数)是的,这真的没有多大意义:存在会话来跨请求持久化数据。如果要防止来自同一客户机的多个请求混淆数据,请使用随机键将数据放入会话变量中,然后传递该键。GET参数的承载能力受到严重限制。URL通常也有限制。IE6最多只支持256个字符(问我是如何发现的;-)。。。大多数现代软件都支持很多,但是Apache只支持到。我不完全理解你的评论。但正如我所说的,我只会在两个按钮上发送两个不同的值,然后在下一页根据按钮的参数运行操作(例如,向购物车添加内容)。@Pekka:谢谢。明天你可以+1我:)我用php进行序列化和取消序列化,它可以工作,但在url中它有所有的序列化字符串。实际上,我正在做的是,我有一个页面,其中用户来选择一个产品有两个按钮,例如,添加另一个和继续我必须检查用户是否刚刚单击了继续按钮,然后表单应该以正常方式将数据带到下一个页面,否则,如果用户单击并添加了另一个按钮,并且添加了任何产品,那么它将被删除应转到会话数组中所有数据的下一页。谢谢你的快速回答,请再告诉我一次。谢谢(将+1,但没有投票数)是的,这真的没有多大意义:存在会话来跨请求持久化数据。如果要防止来自同一客户端的多个请求混淆数据,请将