PHP $ _COOKIE仅在一个目录中可用

All*_*n S 6 php cookies

我面临一个奇怪的问题.我正在向一个PHP文件发送一个AJAX,它设置了一个$_COOKIE['cookieName'] 然后我在主文件中回显那个cookie.

问题:如果处理AJAX的PHP文件与视图文件位于同一文件夹中,$_COOKIE['cookieName']则回显正常.但是,如果我将它移动到另一个目录,Ajax响应将成功通过,但'$ _COOKIE'将不会在视图文件中回显,就好像它从未设置或不存在一样.

处理AJAX的文件:

    $exp = time()+ 3600;
    setcookie("cookieName", "tiger", $exp);
    if(isset($_COOKIE['cookieName'])) { 
        echo "Ajax Response: " .$_COOKIE["cookieName"]. " cookie is set";
    } else if(!isset($_COOKIE['cookieName'])) { 
        echo "Ajax Response: Session NOT SET";
    } 
Run Code Online (Sandbox Code Playgroud)

视图文件:

<script>
$(document).ready(function(){
  var boxText = "test";
  $.ajax({
     type: "POST",
     url: "login.php",
     //login.php is in the same directory, so $_COOKIE will echo below.
     // If I moved the file to folder/login.php AJAX will come back successfully, but $_COOKIE won't echo...
     data: {sendValue: boxText, ajaxSent: true},
     success: function(response){
       console.log(response);
     }
   });
});
</script>


<div >
   Cookie name is.....<?php echo $_COOKIE['cookieName'];?>
</div>
Run Code Online (Sandbox Code Playgroud)

Max*_*sky 7

您必须设置cookie的$ path参数,否则仅为当前路径设置,如url中所示.

setcookie("cookieName", "tiger", $exp, '/');