PHP和AJAX中的cookie问题

Gif*_*ary 11 php cookies ajax jquery

我在脚本上遇到一些问题,我使用PHP和jquery来创建登录系统.

首先,我有PHP页面包含登录表单.当用户点击提交时,我使用jquery将数据发送到服务器

$.post('server_login.php', {username:username.val(), password:password.val()}, function(data){
    alert(data);
}); 
Run Code Online (Sandbox Code Playgroud)

在server_login.php中我有做登录用户的功能.

if($_POST['username']=='username' && $_POST['password']=='1234'){
    $expire = time() + 60*60*24*30; //1 month expired.
    setcookie("user_id", $_POST['username'], $expire);
    echo true;
}
Run Code Online (Sandbox Code Playgroud)

和jquery在我的登录页面上提醒"1".

问题是,当我刷新我的网站并收回cookie时,它没有告诉我.

print_r($_COOKIE);
Run Code Online (Sandbox Code Playgroud)

哪里不对了?

Max*_*sky 18

如果您正在调用的脚本位于服务器上的另一个文件夹中(或通过url重写,它看起来好像在另一个路径下),请确保设置cookie的path参数.

默认情况下,setcookie()仅为当前路径设置cookie.

如果您的页面是,www.domain.com并且您www.domain.com/auth/login.php对cookie 进行了ajax调用将被设置为,/auth并且将无法在外部使用/auth.

所以尝试改为:

setcookie("user_id", $_POST['username'], $expire, '/');
Run Code Online (Sandbox Code Playgroud)