Cookie 可以单独通过javascript设置。当您使用ajax时,我认为您可以在不刷新任何页面的情况下很好地处理cookie 。
这是您应该实现的逻辑。
- 向您的 PHP 页面发送 Ajax 请求。
-
- 如果您已登录,PHP 会将数据保存在数据库中并返回状态值 1。
- 否则 PHP 返回状态值 0。意味着您没有登录并且无法将其保存在数据库中。
- 返回
0
时,PHP 可以填充$_COOKIE
超全局。请求完成后,它将在浏览器中设置 cookie。
- 在您的 ajax 请求的回调事件中,您检查状态值。如果它
0
只是将数据保存在 cookie 中。此 cookie 可通过document.cookie
. 这可以通过jquery轻松完成
使用 jQuery 的示例代码
// ajax.js
$.post("updatewishlist.php",
{
'wishlist_item':'wishlist_value'
},
function(json){
// callback function
if(json.status==0){
$.cookie('the_cookie', 'the_value', { expires: 7 });
}
});
这里我使用了jquery cookie 插件
// updatewishlist.php
<?php
if(user_logged_in()){
// sanitize input here
// update database with $_POST['wishlist_item']
$status = 1;
}else{
// update the cookie
// manipulate $_COOKIE super global
$status = 0;
}
// echoing json
echo json_encode(array('status' => $status));
?>