繁体   English   中英

会话变量不会传递到下一页

[英]Session variable won't pass to the next page

我在URL中传递了一个变量,例如:www.example.com/mypage?gp=32442注意:这是一个WordPress网站。

保存gp变量后,我将其与当前页面ID进行比较,如果它们相等,则设置Cookie和会话,并仅重定向到同一页面,而无需在字符串“?gp = 32442”结束。

Cookies正常运行,但是我还添加了session变量,以防有人禁用了Cookies。

在禁用cookie的情况下进行测试时,重定向后会话变量为空。 我没有重定向就进行了测试,并且正确添加了会话变量。

重定向后如何保持会话变量不变?

 session_start();

    if(isset($_GET["gp"])){ 
            $url_post_id = $_GET["gp"];
        }

    $current_id = get_the_ID();

    // $pageURL is the url without the "?gp=32442" at the end

    if($current_id == $url_post_id){                    
        setcookie("gpcid", $url_post_id, time() + (60 * 60 * 24 * 14));                 
        $_SESSION['gpsid'] = $url_post_id;
        header('Location: '.$pageURL.'');
    }

    if($_COOKIE["gpcid"] == $current_id || $_SESSION['gpsid'] == $current_id  ){
        the_content();
       } else {.......}

为了使会话正常工作,应该启用cookie,因为会话通过一个基本sessionId ,该sessionId也存储在COOKIE中并与COOKIE一起存储。

换句话说,如果用户禁用了COOKIE ,则无法使用$_SESSION

您可以在这里这里了解更多表格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM