代码之家  ›  专栏  ›  技术社区  ›  alias

并非所有cookie都保存在一个页面中

  •  0
  • alias  · 技术社区  · 2 年前

    我有一条很长的文本需要保存在cookie中。我按字符数将其分解,并尝试循环地将其保存到cookie中,但只保存最后一个。下面是应该执行此操作的代码示例。

    要保存cookie:

    function generateRandomString($length = 10) {
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $charactersLength = strlen($characters);
        $randomString = '';
        for ($i = 0; $i < $length; $i++) {
            $randomString .= $characters[random_int(0, $charactersLength - 1)];
        }
        return $randomString;
    }
    
    $token = generateRandomString(8851);
    $name = 'ck';
    $exp = 3600;
    $domain = '.example.local';
    
    if(strlen($token) > 4096) {
        $values = str_split($token, 4095);
        foreach ($values as $key => $value) {
            setcookie(
                name: $name . '_' . $key,
                value: $value,
                expires_or_options: time() + $exp,
                domain: $domain
            );
        }
    } else {
        setcookie(
            name: $name,
            value: $token,
            expires_or_options: time() + $exp,
            domain: $domain
        );
    }
    

    对于视图cookie:

    <?php
    echo '<pre>';
    var_dump($_COOKIE);
    
    0 回复  |  直到 2 年前