PHP和WebView - Cookie不一样

问题描述 投票:0回答:3

我正在使用WebView来显示Web应用程序。所有作品,除了一件事:

我的登录:

setcookie("USER_ID", $my_id, time() + 86400);

我退出:

setcookie("USER_ID", 0, time()-3600);
header('Location: ./index.php');

之后,我看到了登录页面。一切都很正常。 $ _COOKIE数组的print_r是:

Array
(
 [PHPSESSID] => e44ceefl92jvesh0kddmdicmv1
)

没有任何USER_ID。并且都是正确的。

但如果我关闭Android Webview并重新打开这个应用程序,神奇地我登录了!如果我打印cookie数组,是:

Array
(
[USER_ID] => 1  // WTF?!?
[PHPSESSID] => e44ceefl92jvesh0kddmdicmv1
)

似乎android webview向服务器发送了一个较旧的cookie数组。

请帮忙!

- - - - - - - - - - 编辑 - - - - - - - -

如果我打印也

cookieManager.getCookie("MyUrl");

我已通过注销删除了USER_ID cookie

php android cookies webview logout
3个回答
0
投票

首次设置cookie时尝试设置路径和域,当你删除它时,经常根据我的经验解决了很多cookie问题。

而且在注销时将cookie值设置为0只需将其设置为空字符串,如此“”

如果这不起作用,那么也将unset($_COOKIE['USER_ID']);添加到你的注销部分,所以它会是这样的;

setcookie("USER_ID", 0, time()-3600);
unset($_COOKIE['USER_ID']);
header('Location: ./index.php');

0
投票

我试着在PageFinished上做这个

CookieManager.getInstance().cookieManager.flush();

它似乎工作,但我不确定


-1
投票

我没有看到你的代码,但我可以假设用户没有正确注销。

php会话的注销代码应如下所示

<?php
session_start();
session_destroy();

// thats all
// you can unset all php sessions if you wants
?>
© www.soinside.com 2019 - 2024. All rights reserved.