当使用ajax将请求发送到服务器时,我无法检索$ _COOKIE ['mycookiename']的值

时间:2016-10-23 17:53:41

标签: php ajax cookies

我想使用ajax GET方法向服务器发送内容并使用cookie,因此我将值发送到ajax,我需要此值来更新当前cookie值。在ajax文件中,我无法检索$_COOKIE['cookie_name'],当我回应它时,结果将是这样的 - > []!

function card(action,value) {
    if (value == "") {
        document.getElementById('errmsgs').innerHTML = "";
        return;
    } else { 
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        } else {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {

            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById('errmsgs').innerHTML = xmlhttp.responseText;
            }
        };

        xmlhttp.open("GET","inc/pricing/pricing.php?act="+action+"&val="+value,true);
        xmlhttp.send();
    }
}

定价页面是:

<?php 
require_once '../../connection.php';
require_once '../../func.php';

$what_is_action = $_REQUEST['act']; 
$myCook = $_REQUEST['val'];

}
echo $full_cookie_value = $_COOKIE['mycookiename']; ----> output will be--> [] ---->but it must be something like this ---> {"wwde34":"1","effy33":"1","ssdfff":"1"}


if($what_is_action == 'delete'){
    //delete_cook($myCook);
}
?>

解决。
问题是,当我尝试创建cookie时,它不是root用户,所以在另一个文件夹中它无法访问!所以我在setcookie的最后一个参数中加了'/' 例如:setcookie('a','b',time()+36666,'/') 这将在root中创建cookie,并且可以在其他文件夹中访问它!

2 个答案:

答案 0 :(得分:0)

您的Cookie已经制作好了吗?

确保已设置Cookie!示例:

如果您看到I按钮,则需要按下它并找到饼干和胶囊,检查您是否可以在那里找到您的饼干!这必须在您的网站上完成。

获取错误

try
{
    echo $_COOKIE['name']['bills'];
}
catch (Throwable $t) // PHP 7
{
    echo '<b>COOKIE is not made</b>';
}
catch (Exception $e) // PHP 5
{
    echo '<b>COOKIE is not made</b>';
}

请查看Getting cookies with javascript

答案 1 :(得分:0)

你知道,如果那是你文件中的实际代码,那你就不在echo之后分配一个变量,对吗?

echo full_cookie_value应为echo $full_cookie_value,或者如果您尝试将'full_cookie_value'作为“标签”回显,echo 'full_cookie_value '.$_COOKIE['mycookiename']