我知道会话可能是最有效的方法,我已经找到了一些关于如何做到这一点的答案,但是为了这个项目,我不允许这样做.我目前正在做的是使用http_build_query使用以下代码将信息从$_POST和单独的数组传递到下一页.
if ($login[$user] == $pass) {
$qstr = http_build_query(
array(
'products_array' => $products,
'quantity' => $_POST['quantity']
)
);
header('Location: display_invoice.PHP?' . $qstr);
这有效,我可以在重定向后访问$_GET数组中的数组,但如果我尝试使用相同的代码将信息再次传递到下一页,则$_GET数组为空.我可以获得一些关于如何在不使用会话或cookie的情况下将数组信息从第1页传递到最终页面的输入吗?
解决方法:
您可以像这个示例那样序列化()数据.在页面1.PHP中,您有一个通过标题(位置:…)发送到第2.PHP页的数组.在2.PHP中,您可以看到收到的数组,并通过链接将信息发送到3.PHP.在3.PHP中,您可以看到来自1.PHP的数组
试试这个例子吧
1.PHP
<?PHP
$bond = array (
'Sean Connery' => 'Dr. No',
'George Lazenby' => 'On Her Majesty\'s Secret Service',
'Roger Moore' => 'Live and Let Die',
'Timothy Dalton' => 'The Living Daylights',
'Pierce brosnan' => 'GoldenEye',
'Daniel Craig' => 'Casino Royal'
);
$info = serialize($bond);
header('Location: 2.PHP?values=' . $info);
?>
2.PHP
<h1>Page 2</h1>
<?PHP
$values = $_GET['values'];
$info = unserialize($values);
foreach($info as $key => $value) {
echo $key . ' - ' . $value . '<br>';
}
?>
<p>
<a href="<?PHP echo '3.PHP?values=' . urlencode(serialize($info)); ?>">Send values to 3.PHP</a>
</p>
3.PHP
<h1>Page 3</h1>
<?PHP
$values = $_GET['values'];
$info = unserialize($values);
foreach($info as $key => $value) {
echo $key . ' - ' . $value . '<br>';
}
?>