如何在CodeIgniter中删除cookie

9

我不知道如何删除cookie。我希望的是当提交表单时,cookie也能被删除。我尝试了delete_cookie("name")但它没有起作用。我认为这是因为我是用javascript创建cookie。请检查我的代码以解决这个问题。

这是我的文本字段示例:

<input name="cargo_no" type="text"  class="validate[required]"  id="cargonumber" onchange="setCookie('cargonumberC', this.value, 365);"/>

这是 JavaScript 代码:

function setCookie(cookieName, cookieValue, nDays) {
    var today = new Date();
    var expire = new Date();

    if (!nDays) 
        nDays=1;

    expire.setTime(today.getTime() + 3600000*24*nDays);
    document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
  }
  return null;
  }

document.addEventListener('DOMContentLoaded', function() {
  var themeSelect = document.getElementById('cargonumber');
  var selectedTheme = readCookie('cargonumberC');

  if (selectedTheme) {
    themeSelect.value = selectedTheme;
  }
});

你不能直接删除一个cookie。你必须将过期时间设置为过去的日期(即使用与域名、路径、名称等完全相同的参数调用setCookie函数,并使用“1970-01-01”作为日期)。当页面被刷新(重新加载或点击链接)时,浏览器会自动删除该cookie。 - JScoobyCed
使一个cookie过期,或将其设置为无意义的值。 - user972946
可能是重复问题 javascript - delete cookie¨ - Fabien TheSolution
4个回答

15

使用Codeigniter,将其放在控制器的保存方法中:

尝试:

delete_cookie('name', $domain, $path); 

查看官方文档获取更多细节。


这是我想要的 :) 太棒了! - wewe

10
您可以从 CodeIgniter 中删除 cookie。使用 cookie 助手,如下所示:
$this->load->helper('cookie');
delete_cookie("name");

0

要删除一个cookie,请使用以下代码:

helper('cookie');
delete_cookie('remember_me');

-3

您无法删除cookie。浏览器(或用户)必须删除cookie。但是,您可以通过将cookie的过期时间设置为过去的日期来使浏览器自动删除cookie。以下是JavaScript示例。

function deleteCookie(cookieName, cookieValue) {

document.cookie = cookieName+"="+escape(cookieValue) + ";expires=Thu, 01 Jan 1970 00:00:01 GMT;";

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接