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);
}