小编典典

PHP和AJAX中的Cookies问题

ajax

我在脚本中遇到一些问题,该问题使用PHP和jquery创建登录系统。

首先,我有PHP页面包含用于登录的表格。当用户单击提交时,我使用jQuery将数据发送到服务器

$.post('server_login.php', {username:username.val(), password:password.val()}, function(data){
    alert(data);
});

在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;
}

和jquery警报“ 1”在我的登录页面上。

问题是当我刷新我的网站并重新放置cookie时,它没有显示给我。

print_r($_COOKIE);

哪里不对了?


阅读 253

收藏
2020-07-26

共1个答案

小编典典

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

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

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

因此,尝试更改为:

setcookie("user_id", $_POST['username'], $expire, '/');
2020-07-26