0
我在URL中传递一个变量,例如:www.example.com/mypage?gp=32442 注意:这是一个WordPress网站。会话变量不会传递到下一页
gp变量保存后,我将它与当前页面ID进行比较,如果它们相等,我将cookie和会话设置为只重定向到同一页面,而不使用“?gp = 32442 “字符串在最后。
饼干工作正常,但我还添加了会话变量,以防有人被禁用Cookie。
当我禁用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,我不想通过URL来传递它没有别的办法? – Lox
你可以用一个隐藏的输入元素的表单,但是如果用户检查页面源代码可以很容易地看到你设置了什么变量 –
其他方式,但取决于你想要做什么,你可以存储你的价值在数据库中,重定向客户端到一个url,在这里你用最后一个插入id设置一个查询字符串,在第二个页面中,你得到这个id,在db中搜索......这只是一个例子。取决于你想要做什么。 –