为什么我的cookie没有设置好

时间:2015-01-05 10:15:05

标签: php cookies

我正在尝试测试我的浏览器中设置的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');
        }
    }
?>

3 个答案:

答案 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集。