我正在尝试测试我的浏览器中设置的cookie,之前的cookie是在url(mydomain.com?cookieid = 1234)中给出的。现在我试图通过调用设置它的脚本来设置cookie。当我加载名为proceed.php的脚本时,我希望继续并按照我的写法设置cookie。但它没有像我想要的那样设置cookie
proceed.php
<?php
$cookieid = 1234;
include('bin/setcookie.php');
?>
setcookie.php
<?php
include_once dirname(__FILE__).'/../Lodread.php';
$cookieid = isset($_REQUEST["cookieid"]) ? floatval($_REQUEST["cookieid"]) : 0;
$project_id = isset($_REQUEST["projectid"]) ? intval($_REQUEST["projectid"]) : 0;
if (isset($_SERVER['HTTP_REFERER'])){
$urlParts=parse_url($_SERVER['HTTP_REFERER']);
if (isset($urlParts['query'])){
$vars = parse_str($urlParts['query']);
if (isset($vars['cookieid']) && floatval($vars['cookieid']) > 0 ){
$cookieid = floatval($vars['cookieid']);
}
}
}
if ($cookieid) {
if ( ! isset($_COOKIE["cid"])){
$cid = ($project_id?"$project_id:$cookieid":$cookieid);
setcookie("cid", $cid, time() + 60 * 60 * 24 * 365, "/", ".mydomain.com");
header('Location: '.Config_Reader::readProjectConfig('Cookie')->base_url.'/set2.php');
}
}
?>
答案 0 :(得分:0)
这是样本,请尝试这样。
如何获取Cookie的内容:
可以从变量$ _COOKIE ['cookie_name']中检索为页面设置的Cookie,其中'cookie_name'是您之前设置的Cookie的名称。
例如,如果您想显示“userlogin”cookie的值,则应使用以下代码。
echo "Welcome back to the site" . $_COOKIE['userlogin'] ;
请注意,您无法在PHP中设置cookie,并希望在同一个脚本会话中立即检索cookie。以下面的非工作PHP代码为例:
/* WARNING: THIS WILL NOT WORK */
setcookie ( "userlogin", "anonymous", time()+60 );
echo "Value of userlogin: " . $_COOKIE['userlogin'] ;
答案 1 :(得分:0)
使用setcookie函数时尝试不指定域。此外,我建议将$ cid直接传递给您的标头函数,因为无法立即在同一个php脚本中检索cookie值。最后,您可以通过在单独的php脚本中使用$ _COOKIE ['cookie_name']来查看cookie是否设置为将来使用,以获取cookie的值。
答案 2 :(得分:0)
设置Cookie而不使用“mydomain.com”。 用这个:
setcookie("cid", $cid, time() + 60 * 60 * 24 * 365, "/");
现在你检查cookie集。