Php 试图通过GET方法发送数组,但无法取消序列化
然后Php 试图通过GET方法发送数组,但无法取消序列化,php,Php,然后 当我只回显$\u get变量时,我得到了所有的数据,但是当我尝试取消序列化它时,我什么也得不到;空白变量。urlencode用于此目的 if(isset($_GET['subprompt'])){ $subprompt = $_GET['subprompt']; $subprompt = unserialize($subprompt); print_r($subprompt); } $subprompt = urlencode(serialize($errors));
当我只回显$\u get变量时,我得到了所有的数据,但是当我尝试取消序列化它时,我什么也得不到;空白变量。urlencode用于此目的
if(isset($_GET['subprompt'])){
$subprompt = $_GET['subprompt'];
$subprompt = unserialize($subprompt);
print_r($subprompt);
}
$subprompt = urlencode(serialize($errors));
为避免编码问题,应将值作为
base64_encode(serialize($submpt))发送代码>取而代之。结果将是字符串长约33%,因此请记住不要超过最大url长度。尝试以下方法:
除了urlencode,您还可以尝试对数据进行base64编码。有点“漂亮”的url:)
及
不要过分添加这样的内容——大多数浏览器对URL(包括查询字符串)有长度限制。几百个字符是可以的,但是不要期望一个非常大的数组完好无损地通过
$subprompt = urlencode(serialize($errors));
$url_string = urlencode(serialize($errors));
$subprompt = base64_encode(serialize($errors));
header('Location: landingpage.php?success=false&prompt=' . $prompt . '&subprompt=' . $subprompt);
if(isset($_GET['subprompt'])){
$subprompt = $_GET['subprompt'];
$subprompt = unserialize(base64_decode($subprompt));
print_r($subprompt);
}