Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php setcookie无法使用ajax调用_Php_Javascript_Ajax_Cookies_Xmlhttprequest - Fatal编程技术网

php setcookie无法使用ajax调用

php setcookie无法使用ajax调用,php,javascript,ajax,cookies,xmlhttprequest,Php,Javascript,Ajax,Cookies,Xmlhttprequest,我有一个页面test.php,其中包含以下代码: <html> <body> <form> <script type="text/javascript"> function SendCookies(){ if (window.XMLHttpRequest)/* code for IE7+, Firefox, Chrome,

我有一个页面test.php,其中包含以下代码:

<html>
    <body>
        <form>
            <script type="text/javascript"> 

                function SendCookies(){

                    if (window.XMLHttpRequest)/* code for IE7+, Firefox, Chrome, Opera, Safari */
                    { xmlhttp=new XMLHttpRequest(); }
                    else /* code for IE6, IE5 */
                    { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }

                    xmlhttp.onreadystatechange=function()
                    {
                        if (xmlhttp.readyState==4 && xmlhttp.status == 200)
                        {
                            alert('done');
                        }
                    }

                    xmlhttp.open("GET", "/web/DEV/Classes/SetCookie.php?time=" + new Date());
                    xmlhttp.send();

                }

            </script>

            <input type="text" id="txtInput" name="txtInput"/>
            <input type="button" id="btnSubmit" name="btnSubmit" value="Submit"  onclick="SendCookies()"/>
            <div id="divTest">
                <?php
                    if (isset($_COOKIE["TestCookie"])) {
                        echo $_COOKIE["TestCookie"];
                    } else {
                        echo "__Results__";
                    }
                ?>          
            </div>
        </form>
    </body>
</html>
<?php 
    $var = "THIS IS  A  TEST";
    setcookie("TestCookie", $var, time()+60*60*24*30);
?>
但是,当我重新加载页面时,它不会显示更新的cookie因为该cookie已设置为不带“/”参数,并且以后无法使用“/”参数进行修改。


在清除缓存并使用建议的代码之后,我从浏览器中清除了我的cookies,并使用set方法中添加的参数,我能够操作所有页面中的cookies!!!非常感谢你

我认为您应该查看setcookie的path参数。将其设置为“/”,以便可以从站点的所有目录/页面访问它。

如果未将
$path
值添加到
setcookie()
,则默认为“当前目录”。这意味着,如果您从
/web/DEV/Classes/SetCookie.php
设置cookie,cookie将被设置为
/web/DEV/Classes/
,并且高于该路径的任何内容都不会看到该cookie

要解决此问题,请向setcookie添加特定的$path。如果您的应用程序在域根目录(example.com)上运行,请使用
'/'
。如果它位于子文件夹(example.com/myapp/)中,请使用
'/myapp/“

setcookie("TestCookie", $var, time()+60*60*24*30, '/');

就在几天前,我有代码可以做到这一点。我能想到的唯一区别是SetCookies.php页面与“?.php”页面存在于同一目录中。也许这与此有关?我会用我的代码来处理这个想法,如果我发现了什么,我会发布一个更新。对不起,我太傻了;-)事实证明,你唯一做不到的就是为请求设置cookies。这仍然很好,我根本不知道有任何限制=请注意,这不会更改已存在的cookie。如果没有指定路径,则必须首先清除旧cookie。
setcookie("TestCookie", $var, time()+60*60*24*30, '/');